【问题标题】:Google Maps API v3 Circle Overlay IssuesGoogle Maps API v3 圆圈覆盖问题
【发布时间】:2011-07-29 09:12:50
【问题描述】:

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

这运行良好,但有一些附加功能我无法在不破坏代码的情况下集成:

  1. 我想输出叠加层中心的地名及其坐标。

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

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

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

抱歉,有这么多要点 - 我已经为此烦恼了好几个星期了!

非常感谢。

【问题讨论】:

    标签: javascript google-maps-api-3


    【解决方案1】:

    回答第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/

    【讨论】:

    • 谢谢 Bernhard,这无疑为我指明了正确的方向。请问您对其他方面有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 2013-02-23
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多