我在使用谷歌地图 API 的页面上对这个问题感到愤怒。当您单击标记(带有图标的白色)时,信息窗口将正确显示。但是,当您单击蓝色集群时,信息窗口将显示,但它会将地图位置移动到非洲附近的某处海洋。看看这个网站: http: //pec.solarismedia.net/map.html
有没有人可以解释为什么会发生这种情况以及如何避免它?
提前致谢
我在使用谷歌地图 API 的页面上对这个问题感到愤怒。当您单击标记(带有图标的白色)时,信息窗口将正确显示。但是,当您单击蓝色集群时,信息窗口将显示,但它会将地图位置移动到非洲附近的某处海洋。看看这个网站: http: //pec.solarismedia.net/map.html
有没有人可以解释为什么会发生这种情况以及如何避免它?
提前致谢
当您创建 时InfoBox
,您并没有给它一个position
应该包含LatLng
. 我在您的代码中看到两个地方,您在其中设置了一个infoboxOptions
传递给的对象new InfoBox()
,但都没有position
属性。
因为缺少这个,所以InfoBox
默认为 (0,0) 的 LatLng。请参阅以下代码gmap.infobox.js
:
this.position_ = opt_opts.position || 新的 google.maps.LatLng(0, 0);
所以你需要在position
你的infoboxOptions
. 对于第一个,碰巧有一个myLatLng
变量在该代码上方初始化并用于标记。如果您想使用相同的 LatLng,则可以添加以下内容:
var infoboxOptions = {
position: myLatLng,
// and your other properties here
};
对于第二个(集群),看起来你有一个cluster
对象的引用,所以你可以调用cluster.getCenter()
来获取它的 LatLng:
var infoboxOptions = {
position: cluster.getCenter(),
// and your other properties here
};