我在使用谷歌地图API的页面上对这个问题感到愤怒。 当您点击标记(带有图标的白色)时,infowindow将会正确显示。但是,当您点击蓝色群集时,infowindow将显示,但它会将地图位置移动到非洲附近的某个海域。 看看网站:http://pec.solarismedia.net/map.html谷歌地图Infowindow移动整个地图位置
有没有人能解释我为什么发生这种情况,以及如何避免它?
在此先感谢
我在使用谷歌地图API的页面上对这个问题感到愤怒。 当您点击标记(带有图标的白色)时,infowindow将会正确显示。但是,当您点击蓝色群集时,infowindow将显示,但它会将地图位置移动到非洲附近的某个海域。 看看网站:http://pec.solarismedia.net/map.html谷歌地图Infowindow移动整个地图位置
有没有人能解释我为什么发生这种情况,以及如何避免它?
在此先感谢
当您创建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
};
哇,这很快!但是,如果我用标记来完成协调,是否有可能? Like'cluster.infoboxCluster = new InfoBox(infoboxOptions);' 谢谢 – FilipBenes 2013-03-28 08:09:37
当然,你可以从'cluster'对象中得到它,查看更新的答案。 – 2013-03-28 08:26:04
双击它@MichaelGeary – 1Mayur 2013-03-28 05:23:15
@Filip,你都在提,不能在我的铬 – 1Mayur 2013-03-28 05:24:06
家伙复制行为,所以比较遗憾的是错,我把网上旧版本,当它没有完全工作。现在看看它,它是按照我想描述的。 为了说清楚,我在Win7上使用了Chrome 25。 谢谢 – FilipBenes 2013-03-28 07:37:20