[英]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.