簡體   English   中英

MapKit注釋和用戶位置

[英]MapKit Annotations and User location

我按照本教程制作了第一個應用程序:

http://icodeblog.com/2009/12/21/introduction-to-mapkit-in-iphone-os-3-0/

我真的很想知道如何按與用戶的距離排序表中的注釋(最近的注釋是表中的第一個注釋)怎么可能呢?

我知道我必須使用CLLocation來找到用戶的位置,但是我不知道。

有人可以幫我嗎?

干杯,

預先感謝您的幫助,

編輯:我添加了詳細信息:

數據不在數組中,它在RootViewController.m中以以下形式實現:

-(void)loadOurAnnotations
{
    CLLocationCoordinate2D workingCoordinate;

    workingCoordinate.latitude = 40.763856;
    workingCoordinate.longitude = -73.973034;
    iCodeBlogAnnotation *appleStore1 = [[iCodeBlogAnnotation alloc] 

    initWithCoordinate:workingCoordinate];
    [appleStore1 setTitle:@"Apple Store 5th Ave."];
    [appleStore1 setSubtitle:@"Apple's Flagship Store"];
    [appleStore1 setAnnotationType:iCodeBlogAnnotationTypeApple];

    [mapView addAnnotation:appleStore1];

... 等等。 那怎么可能呢?

您可以在此處找到源代碼:

icodeblog.com/wp-content/uploads/2009/09/iCodeMap.zip

teddafan

CLLocation您可以使用

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

計算一個物體到另一個物體的距離。 在這種情況下,大概是用戶的當前位置。

如果數據在NSArray ,則可以使用sortedArrayUsingFunction調用調用此方法的幫助函數。

遍歷CLLocations並找到它們與您當前位置之間的距離。

然后使用自己的排序算法對數組中的距離進行排序。

for (CLLocation *loc in locations) {
  [distances addobject:[currentLocation distanceFromLocation:loc]];
}
[distances sort]; /* Own sorting algorithm */
[yourTable reloadData];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM