Javascript 如何将地图居中放置在标记上并打开标记';在一个方法中使用InfoWindow

Javascript 如何将地图居中放置在标记上并打开标记';在一个方法中使用InfoWindow,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我正在使用谷歌地图APIv2。 在我的网页上有一个侧边栏,其中包含一个标记列表,其中onclick事件执行showDetails方法,如下所示: GMarker.prototype.showDetails=function(){ map.panTo(this.getLatLng()); this.openInfoWindowHtml(this.details); }; 问题是,我无法在一个方法中同时使用panTo和openInfoWindowHtml,它会平移,但不会打开工具提示,当我将方法更改

我正在使用谷歌地图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());
};
它会打开工具提示,但不会将贴图居中放置到标记的定位点坐标。
即使使用等待函数也不能解决我的问题。

我做错了什么?

您需要首先执行addListener,以等待映射通过“moveend”事件完成移动。然后在事件处理程序中,对您创建的侦听器调用RemovelListener,以便事件处理程序只运行一次。之后,在事件处理程序中打开您的信息窗口。

openInfoWindowHtml方法应触发panto以将信息窗口置于视口中

标记位于视口外部,您将触发该标记上的信息窗口-地图应平移到该位置+/-,以便信息窗口在视口中居中