Кликабельные маркеры на GTileLayerOverlay
-
13-09-2019 - |
Вопрос
У меня есть веб-приложение, которому необходимо отображать 30 000 маркеров на карте одновременно.Я не хочу использовать какой-либо вид кластеризации.Мне нужно, чтобы они все были отображены.
Мне также нужно, чтобы они были кликабельными.Пользователь может нажать на каждую точку, и появится всплывающее окно с информацией об этой точке.Даже при низком уровне масштабирования, когда в одном квадрате размером 256x256 расположены тысячи маркеров, пользователь должен иметь возможность нажимать на них.Пользователю может быть неудобно нажимать на точку, которая сгруппирована с сотнями других точек, но если где-то в глуши окажется один маркер, я хочу, чтобы пользователь мог щелкнуть по нему прямо там, вместо того, чтобы увеличивать масштаб.
Как мне это сделать?Я знаю, что это возможно, потому что я смотрел видео в Google video, где этот парень создает приложение GTileLayerOverlay с кликабельными маркерами.Однако он не объяснил, как это было сделано.
Является ли мой единственный вариант просто удалить GTileLayerOverlay при высоких уровнях масштабирования и заменить его настоящим слоем GMarker?Я действительно не хочу этого делать.Мне это кажется чересчур инженерным.
Если бы вы были на моем месте, как бы вы поступили по этому поводу?
Решение
Я обнаружил, что этот пример находится в Демонстрационная галерея API Google Maps:
Кликабельный Слой Плитки В этом примере создается пользовательский тип карты (GMapType), который показывает региональные границы и квадраты для окружных центров.При нажатии на квадраты открывается информационное окно с информацией об этом округе.Кликабельность достигается путем передачи информации о границах кликабельных пикселей в файлах cookie, прикрепленных к плиткам, и выполнения проверки на стороне клиента при наведении курсора мыши на предмет того, находится ли положение мыши в пределах границ пикселя.
Вот несколько комментариев о его методе.
У меня нет никакого опыта работы с GTileLayOverlays, но я считаю, что можно выполнить то, что вы пытаетесь сделать, без использования GMarkers.
Можно ли было бы использовать кластеризацию, если бы каждый кластер мог выводить список маркеров, которые он представляет?Похоже , что одновременное отображение 30 000 маркеров было бы визуально запутанным и трудным для навигации .