Как центрировать карту на маркере и открыть InfoWindow маркера одним способом - PullRequest
5 голосов
/ 27 января 2010

Я использую Google Map APIv2. На моей веб-странице есть боковая панель со списком маркеров с событием onclick, выполняющим метод showDetails, который выглядит следующим образом:

GMarker.prototype.showDetails=function() { map.panTo(this.getLatLng()); this.openInfoWindowHtml(this.details); };

Проблема в том, что я не могу одновременно использовать panTo и openInfoWindowHtml в одном методе, он перемещается, но не открывает подсказку, и когда я изменяю метод на:

GMarker.prototype.showDetails=function() { this.openInfoWindowHtml(this.details); map.panTo(this.getLatLng()); }; он открывает всплывающую подсказку, но не центрирует карту по координатам привязки маркера. Даже использование функции ожидания не решает мою проблему. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 20 апреля 2010

Вам нужно сначала сделать addListener, чтобы дождаться окончания перемещения карты с событием 'moveend'.Затем в обработчике событий вызовите removeListener для созданного вами прослушивателя, чтобы обработчик событий запускался только один раз.После этого в обработчике событий откройте ваше информационное окно.

0 голосов
/ 14 мая 2010

метод openInfoWindowHtml должен вызвать панорамирование для помещения информационного окна в область просмотра

е

маркер находится вне области просмотра, и вы запускаете информационное окно на этом маркере - карта должна перемещаться в это место +/-, чтобы информационное окно было центрировано в области просмотра

...