Карты Google со слишком многими отметками - PullRequest
1 голос
/ 20 ноября 2011

Я использую компонент Android WebView для отображения Карт Google с POI.Для отображения POI я использую класс JavaScript API google.maps.Marker.

Проблема в том, что, когда все 350 POI отображаются на карте, они делают WebView медленным и почти непригодным для использования ...

Как его оптимизировать ???

Существует ли какой-либо API, например, объединяющий уровень масштабирования карты с количеством отображаемых меток?Например, если уровень масштабирования равен 0, например, отображается 10 POI, а когда уровень масштабирования равен 10, отображаются все, что может соответствовать порту просмотра ...

Спасибо за помощь С уважением, Петр

1 Ответ

5 голосов
/ 21 ноября 2011

Слишком много маркеров на карте - это хорошо известная проблема.Есть несколько решений для этого.Хороший обзор возможных решений можно найти здесь .

Если кратко подвести итог, то решения:

  1. Кластеризация : Он группирует маркеры так, что на карте не видно слишком много маркеров одновременно.При увеличении масштаба кластеры разделяются на более мелкие кластеры и / или отдельные маркеры.Вы можете создать свой собственный кластерный маркер или использовать некоторую библиотеку, которая обеспечивает необходимую функциональность.Отличное решение можно найти в служебной библиотеке Google Maps .
  2. Диспетчер маркеров : Диспетчер маркеров позволяет указать, какие маркеры отображаются при различных уровнях масштабирования.Опять же, вы можете создать собственную реализацию или использовать библиотеку. Библиотека утилит Google Maps предоставляет хороший MarkerManager.
  3. Управление окном просмотра : Идея состоит в том, чтобы показывать только те маркеры, которые необходимы для отображения (те, которые расположены втекущий видовой экран).Хотя это не решает полностью проблемы, это хорошее улучшение предыдущих методов.
  4. Fusion Tables : Когда вы используете Fusion Tables , маркеры отображаютсяна серверах Google в специальном слое.
...