Как лучше всего отображать POI в MapKit для iPhone?

Предполагая, что у меня есть база данных POI с их соответствующими координатами (долгота и широта). Каким будет «стандартный» способ отображения POI в виде аннотаций к текущему местоположению пользователя? Чтобы уточнить:

  • Учитывая уровень масштабирования, я предполагаю, что мне нужно искать в базе данных все точки интереса, расстояние до которых до текущего местоположения ‹определенное пороговое значение, а затем создавать аннотации для них. Или есть способ поумнее?
  • Если пользователь увеличивает / уменьшает масштаб, перемещает карту ... Мне нужно будет все это переделывать снова?
  • Похоже, что в MapKit есть механизм кеширования / повторного использования аннотаций. Должен ли я создать их сразу много и позволить MapKit решать, что отображать при изменении видимой области? Думаю, это сделает переход более плавным, но при этом потребляет больше памяти. Какой у вас опыт с этим?

Спасибо.


person iamj4de    schedule 11.04.2010    source источник


Ответы (1)


На самом деле, полагаться на расстояние между текущим местоположением и POI - неправильный подход: оценка расстояний требует времени, вам лучше просто полагаться на регион, отображаемый на вашей карте (свойство region), и проверять, какие из ваших POI содержатся в этот регион.

При увеличении / уменьшении масштаб изменяется, поэтому вам, возможно, придется повторить то же самое.

См. Мой ответ здесь: MKMapView загружает сразу все представления аннотаций (включая те, которые находятся за пределами текущего прямоугольника)

Этот парень пытается использовать кеширование аннотаций, и мой ответ может помочь вам в вашем случае.

Чтобы проверить, является ли ваш POI отображаемым регионом, я разместил фрагмент кода, который может здесь помочь: iPhone Development - аннотация булавки в видимой области карты

person yonel    schedule 11.04.2010