Стратегия лениво загружающихся маркеров в Google Maps JavaScript карта API

Я создаю сайт MVC ASP.NET, где я хочу иметь Google Maps JavaScript карта API, которая показывает маркеры, загруженные от моего бэкенда до Ajax.

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


Вот моя текущая стратегия:

  1. Добавьте слушателя события idle событие.
  2. Когда idle событие брошено, используйте jQuery для создания Ajax HTTP POST звоните в мой бэкенд, предоставляя текущую область просмотра/границы карты.
  3. Бэкенд возвращает все точки в области просмотра.
  4. Точки создаются в маркеры и добавляются к Fluster2, который добавляет их к карте. Старые точки НЕ отбрасываются.
  5. Повториться

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

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

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


Действительно ли это - хорошая стратегия? Если так, как я могу реализовать хеш-таблицу, которая не позволяет дубликаты?

5
задан user151019 14 May 2012 в 13:31
поделиться