Я после этого учебника, чтобы сделать мое первое приложение:MapKit Аннотация и местоположение пользователя
http://icodeblog.com/2009/12/21/introduction-to-mapkit-in-iphone-os-3-0/
Я действительно хотел бы знать, как сортировать аннотации в таблице в порядке расстояния до пользователя (ближайшая аннотация - первая на столе). Как это можно сделать?
Я понимаю, что я должен использовать CLLocation для поиска местоположения пользователя, но тогда я понятия не имею.
Может ли кто-нибудь мне помочь?
Приветствия,
Заранее спасибо за высокую оценку помощи,
EDIT: Я добавил детали:
данные не в массиве, он реализован в RootViewController. м в таком виде:
-(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
Я добавил детали, потому что мои данные не в массиве! – teddafan
Возможно, это должно быть, если вы хотите отсортировать их. – Nick
Рассматривая ваш измененный код, вы можете поместить каждый из этих элементов данных AppleStore # в словарь как пары ключ/значение (имя, описание, местоположение и т. Д.), А затем добавить каждый словарь в массив. Запустите сортировку по массиву на основе расстояния, затем пройдите через массив и добавьте каждый элемент в виде аннотации к карте. Когда пришло время показать таблицу данных, вам нужно будет установить источник данных для таблицы, и этот отсортированный массив будет им. Предложите, чтобы вы сохранили вычисленное значение CLLocationDistance в массиве (как NSNumber) и отобразили его в удобочитаемом значении (т. Е. 300 футов, 3 мили) в таблице. – Ramin