Google Maps API v3圆形叠加问题

时间:2011-04-04 18:03:31

标签: javascript google-maps-api-3

以下是您的帮助。我在http://jsfiddle.net/jpEwM使用JS代码来显示带有可调整大小的圆形叠加层的Google Map,以输出中心点坐标,半径和边界框。

这很好用,但是有一些额外的功能我无法在不破坏代码的情况下集成:

  1. 我想在叠加层的中心输出地名及其合作伙伴。

  2. 在地图上移动时很容易丢失圆形叠加层。我希望能够使圆形覆盖在视口中始终可见(即,如果您将地图滚动得足够远以丢失圆形覆盖,它将'跳回'到视口的中心,或者甚至更好的光标位置)

  3. 如果放大地图,您可以完全进入圆形叠加层。是否可以在缩放时调整圆形覆盖的大小,以便不会发生这种情况?

  4. 当我从XML文件向地图添加标记时,它会破坏当前功能的其余部分。理想情况下,我想使用MarkerClusterer来执行此操作,但基本标记也可以。

  5. 很抱歉有这么多分 - 我已经把头发拉了好几个星期了!

    非常感谢。

1 个答案:

答案 0 :(得分:0)

回答第3点:

您需要为绑定更改添加侦听器:

google.maps.event.addListener(map, 'bounds_changed', function() {
    displayInfo(distanceWidget,map);
});

请注意,我已经在displayInfo方法中添加了一个map参数,现在看起来像这样:

function displayInfo(widget, map) {
    var info = document.getElementById('info');
    info.innerHTML = 'Position: ' + widget.get('position') + '<br />' + 'Distance: ' + widget.get('distance') + '<br />' + 'Bounds: ' + widget.get('bounds') +'<br/>Map bounds: '+ map.getBounds();
}

通过此更改,您将看到您可以确定distanceWidget的边界何时超出地图的范围,并采取必要的步骤来减小窗口小部件的直径。

我的优秀jsFiddle的前叉(包括上面更改过的)在这里:http://jsfiddle.net/bhofmann/AT8uz/