Как сделать так, чтобы несколько перекрывающихся маркеров в Картах Google открывали свое собственное информационное окно при нажатии на одно из них? - PullRequest
8 голосов
/ 21 ноября 2011

Я использую Google Maps API V3 в javascript. У меня есть несколько маркеров, которые находятся в непосредственной близости друг от друга. Я хочу сделать так, чтобы, когда пользователь щелкает маркер, открывалось информационное окно этого маркера и любые перекрывающие его маркеры (мне нужно всплыть при щелчке по событию для всех других маркеров, которые перекрывают нажатый пиксель). Я могу получить окно информационного окна самого высокого z-индексированного маркера, но мне нужно также открыть окна маркеров внизу. Можно ли это сделать, и если да, то как?

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Попробуйте OverlappingMarkerSpiderfier

https://github.com/jawj/OverlappingMarkerSpiderfier

Здесь есть демоверсия - http://jawj.github.com/OverlappingMarkerSpiderfier/demo.html

Он пытается дать такое же «кластерное» поведение, как и Api Земли.

0 голосов
/ 25 ноября 2011

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

Я думаю, что решение было бы использовать кластеризацию маркеров, например markerclusterer . Затем расширить эту библиотеку таким образом, чтобы каждый кластер мог обрабатывать свое событие onclick, а затем выполнять операции, необходимые для маркеров, которые он содержит. Я думаю, что markerclusterer в настоящее время не поддерживает это, поэтому вам придется либо улучшить его (что было бы очень полезно для других, если вы потом поделитесь им!), Либо попытаться найти библиотеку, которая уже может это делать (не не знаю об этом) ... Когда вы найдете решение, пожалуйста, опубликуйте его здесь как ответ.

...