Клуб API Карт

Best practices добавления/удаления меток на карте

Пост в архиве.

Вот есть, например, карта, на которую сразу после создания (new ymaps.Map(...)) нанесли метки в составе нескольких коллекций геообъектов. Метки отображают некие физические объекты, которые попадают в текущую область картографирования. Теперь пользователь начинает карту а) перемещать мышкой или б) делать zoom in/out контроллом или колесом мыши. Соответственно, область картографирования изменяется и должен изменяться состав меток в коллекциях. Новые должны добавляться, а старые...

 

Вот что делать со «старыми», не попадающими в область картографирования метками? Есть какие-то best practices в плане производительности или каких-то других аспектах? Что делать:

  1. добавлять новые и не удалять старые?
  2. полностью удалять коллекцию и «перерисовывать» ее заново
  3. добавлять новые метки и удалять те, которые вышли за область картографирования?

Может ли на выбор этих вариантов (а другие бывают?) влиять использование/не использование кластеризатора?

 

 

Спасибо!

6 комментариев

О каком количестве объектов идет речь?

То, что получается при инициализации - 10-20 max при использовании Geolocation API. Ибо карта точнее "наводится" на местоположение пользователя. Если Geolocation API по каким-то причинам не сработало, то нужно отобразить количество объектов во всем городе.

Если конкретнее, то речь идет об аптеках (возможно, добавятся другие объекты с аналогичным функционалом) и возможности поиска таковой "поближе к дому". Но в теории, таки да, пользователь может захотеть перенестиcь в другой город/регион и/или просто "от нечего делать" задавать область картографирования с большим количеством объектов. Ну или запретить работу Geolocation API.

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

Сколько всего у вас объектов?

если их меньше 500 смысла заморачиваться какими-либо удалениями нет.

Добавляйте все сразу

Все понял! Спасибо!

А так вообще пункт 3. Точнее 3.1

Добавлять новые и быть готовым к удалению старых. Это можно делать не сразу, а чуть "потом", тем самый снижая разовую нагрузку.

Про "чуть потом" - очень полезное дополнение. Спасибо!