【问题标题】:Google Maps API v3: MarkerWithLabel not showing until zoomGoogle Maps API v3:MarkerWithLabel 直到缩放才显示
【发布时间】:2012-11-05 21:12:47
【问题描述】:

我正在将使用 google maps api v2 的应用程序转换为 v3。作为其中的一部分,我也不得不将 MarkerManager 升级到 v3 版本。

我有一个奇怪的问题,即标记直到用户缩放地图才会显示,然后它们才会出现。

如果我随后缩放回原始缩放级别,标记仍然存在,因此这不是最小\最大缩放问题。 firebug\javascript 控制台中没有报告错误,如果我在添加标记的位置放置断点或 console.log,肯定会添加它。

应用程序比较大,所以我不能把所有的源码放在这里,但是添加标记的代码如下:

    console.log("Adding Marker");
    markerManager.addMarker(marker, 1, 19);
    markerManager.refresh();

而创建marker的代码类似这样:

        var latLng = new google.maps.LatLng(y, x);
        var marker = new MarkerWithLabel({
            position: latLng,
            title: "title",
            labelClass: "marker",
            labelContent: "Test",
            icon: icon,
            labelAnchor: new google.maps.Point(26, 32)
        });

icon 只是一个google.maps.MarkerImage。 MarkerManager 和 MarkerWithLabel 记录在这里:

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markermanager/1.0/docs/reference.html

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.7/docs/reference.html

编辑:我应该在创建标记管理器后对它进行任何操作之前添加它,我有以下内容,所以在加载之前我不会尝试添加任何东西:

google.maps.event.addListenerOnce(markerManager, 'loaded', function () {

有人对我的错误可能在哪里有任何建议吗?

【问题讨论】:

    标签: javascript google-maps-api-3 google-maps-markers markermanager


    【解决方案1】:

    我已经找到了解决此问题的方法,但我不确定这可能会产生什么其他后果。基本上在markermanager.js中我替换了以下(~第130行)

    google.maps.event.addListener(map, 'dragend', function () {
        me.onMapMoveEnd_();
    });
    google.maps.event.addListener(map, 'zoom_changed', function () {
        me.onMapMoveEnd_();
    });
    

    有了这个,标记就会按预期显示。我仍然对其他想法持开放态度,因为我不想编辑 markermanager 文件,而且我不确定这样做的性能(或其他)影响

    google.maps.event.addListener(map, 'idle', function () {
        me.onMapMoveEnd_();
    });
    

    编辑:查看 markermanager.js 开发版本,其中包含所有 3 个事件。因此,如果其他人有此问题,则可能值得使用 v1.1:

    http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多