1

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

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

提前致谢

4

1 回答 1

1

当您创建 时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
};
于 2013-03-28T07:54:33.037 回答