Обновлять местоположение на карте, когда я прокручиваю карту

Я получил от клиента файл .plist, в котором указаны адреса, их широта и долгота.

Мое требование: когда я прокручиваю карту, соответствующие широта и долгота обновляются и показывают правильное местоположение на карте.

например Предположим, у меня есть текущее местоположение на карте - Нью-Йорк, и я бросаю булавку в Нью-Йорк. Теперь, когда я прокручиваю свою карту до Нью-Джерси, и если широта и долгота совпадают с широтой и долготой файла .plist, тогда булавка должна падать в месте Нью-Джерси.

прошу вас предоставить информацию, потому что это большой блок для меня в моем приложении.


person iPhone    schedule 04.08.2015    source источник
comment
вы хотите динамически добавлять булавки при прокрутке карты? или хотите добавить сразу все пины?   -  person naresh    schedule 04.08.2015
comment
Когда я прокручиваю, если широта и долгота совпадают, булавку следует опустить.   -  person iPhone    schedule 04.08.2015


Ответы (2)


Во-первых, вам нужно проанализировать свой список и сохранить латлонг в словаре. Каждый раз, когда карта перемещается (будут вызываться методы делегата карты, например, mapDidMove), выполните цикл в словаре и проверьте, отображается ли latlon.

person Xchord    schedule 04.08.2015

  1. найти вид карты прокручивается см. определить, был ли MKMapView перетащен / перемещен
  2. если вид карты прокручивается, то получить границы области просмотра карты (видимые) по широте и долготе см. Получение границы MKMapvIew
  3. сравните расположение ваших контактов, если они попадают в этот регион. если да, добавьте булавку на карту

Дома это помогает

person naresh    schedule 04.08.2015
comment
даже вы можете добавить все контакты на карту, если у вас есть несколько контактов для отображения. - person naresh; 04.08.2015
comment
Спасибо за ответ, но как я могу проверить, попадают ли мои булавки в видимую область? Как я могу сравнить места? - person iPhone; 04.08.2015
comment
проверьте stackoverflow.com/questions/2752725/ - person naresh; 04.08.2015
comment
nares, это не лучший ответ, поскольку прямоугольник находится в 2D-плоскости, вы находитесь на поверхности сферы (Земли). Не работает и в качестве приближения. - person StefanS; 04.08.2015
comment
здесь прямоугольник выполнен с координатами GPS. означает, что мы сравниваем одинаковые количества. вы можете предложить, если у вас есть лучший ответ. - person naresh; 04.08.2015