2013-03-28 133 views
1

我在使用谷歌地图API的页面上对这个问题感到愤怒。 当您点击标记(带有图标的白色)时,infowindow将会正确显示。但是,当您点击蓝色群集时,infowindow将显示,但它会将地图位置移动到非洲附近的某个海域。 看看网站:http://pec.solarismedia.net/map.html谷歌地图Infowindow移动整个地图位置

有没有人能解释我为什么发生这种情况,以及如何避免它?

在此先感谢

+0

双击它@MichaelGeary – 1Mayur 2013-03-28 05:23:15

+0

@Filip,你都在提,不能在我的铬 – 1Mayur 2013-03-28 05:24:06

+0

家伙复制行为,所以比较遗憾的是错,我把网上旧版本,当它没有完全工作。现在看看它,它是按照我想描述的。 为了说清楚,我在Win7上使用了Chrome 25。 谢谢 – FilipBenes 2013-03-28 07:37:20

回答

1

当您创建InfoBox,你不给它一个position属性,它应该包含一个LatLng。我在代码中看到两个地方,您设置了一个infoboxOptions对象,您将该对象传递给new InfoBox(),但都没有position属性。

由于缺失,InfoBox默认为(0,0)的LatLng。请参阅gmap.infobox.js中的此代码:

this.position_ = opt_opts.position || new google.maps.LatLng(0,0);

所以你需要添加一个position属性到你的infoboxOptions。对于第一种情况,碰巧你有一个myLatLng变量,该变量在代码之上被初始化并用于标记。如果你想使用相同的经纬度,那么你可以补充一点:

var infoboxOptions = { 
    position: myLatLng, 
    // and your other properties here 
}; 

对于第二个(集群),它看起来像你的cluster对象的引用,这样你就可以调用cluster.getCenter()得到其经纬度:

var infoboxOptions = { 
    position: cluster.getCenter(), 
    // and your other properties here 
}; 
+0

哇,这很快!但是,如果我用标记来完成协调,是否有可能? Like'cluster.infoboxCluster = new InfoBox(infoboxOptions);' 谢谢 – FilipBenes 2013-03-28 08:09:37

+0

当然,你可以从'cluster'对象中得到它,查看更新的答案。 – 2013-03-28 08:26:04