#iphone #objective-c #mkmapview #mkmapviewdelegate
#iPhone #objective-c #mkmapview #mkmapviewdelegate
Вопрос:
Я использую функциональность карты в своем приложении для iPhone. Я показываю магазины для текущего местоположения пользователей на карте. Всякий раз, когда пользователь прокручивает карту, ему нужно показывать магазины нового местоположения. например. предположим, что пользователь в
Нью-Йорке сначала приложение покажет магазины в Нью-Йорке, но когда он прокручивает карту до Техаса, тогда приложение должно запустить запрос веб-службы на местоположение в Техасе. Моя проблема в том
1) если запрос веб-службы отправляется при каждой прокрутке карты, приложение может аварийно завершать работу или каждый раз ожидать ответа для нового набора магазинов. (для этого я собираюсь ввести некоторый жестко заданный радиус для отправки запроса) Итак, как правильно с этим справиться. 2) Я хочу знать расстояние между двумя местоположениями, чтобы я мог отправить запрос на сервер, только если расстояние между 2 местоположениями больше некоторого определенного значения.
Я использую делегаты представления карты для вышеуказанных функций. Пожалуйста, предложите мне какой-нибудь правильный способ справиться с этим.
Спасибо
Ответ №1:
Ну, чтобы найти расстояние между 2 точками, я использую
CLLocation *location1 = [[CLLocation alloc]initWithLatitude:[[dict valueForKey:@"lat"] doubleValue] longitude:[[dict valueForKey:@"lon"]doubleValue]];
float distance =[mUserCurrentLocation distanceFromLocation:location1]/1000;
float distanceinMeters=[mUserCurrentLocation distanceFromLocation:location1]; NSString *distancestr= [NSString stringWithFormat:@"%.2f KM",distance];
Посмотрите, может ли это вам помочь.
Комментарии:
1. Используя вышеизложенное, я могу получить разницу .. но как обрабатывать запрос веб-службы, который будет получать вызов каждый раз при прокрутке?
2. если у вас есть 2 точки широты .. затем вычислите расстояние с помощью приведенной выше функции и поставьте какое-либо условие, скажем, для if (расстояние> 100), затем делайте все, что хотите…. с этим я могу вам помочь…..