以下是您的帮助。我在http://jsfiddle.net/jpEwM使用JS代码来显示带有可调整大小的圆形叠加层的Google Map,以输出中心点坐标,半径和边界框。
这很好用,但是有一些额外的功能我无法在不破坏代码的情况下集成:
我想在叠加层的中心输出地名及其合作伙伴。
在地图上移动时很容易丢失圆形叠加层。我希望能够使圆形覆盖在视口中始终可见(即,如果您将地图滚动得足够远以丢失圆形覆盖,它将'跳回'到视口的中心,或者甚至更好的光标位置)
如果放大地图,您可以完全进入圆形叠加层。是否可以在缩放时调整圆形覆盖的大小,以便不会发生这种情况?
当我从XML文件向地图添加标记时,它会破坏当前功能的其余部分。理想情况下,我想使用MarkerClusterer来执行此操作,但基本标记也可以。
很抱歉有这么多分 - 我已经把头发拉了好几个星期了!
非常感谢。
答案 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/