【问题标题】:Show google map marker depending on what zoomlevel you're on根据您所在的缩放级别显示谷歌地图标记
【发布时间】:2011-05-30 21:22:08
【问题描述】:

我想知道是否可以将标记设置为在所选缩放级别中可见
谷歌地图 API v3。
我认为在 API 的 v2 中可以使用“标记管理器”,但找不到最新 API 的方法。

示例:
Marker-1 -> (max_zoom:10, min_zoom:5) //将在缩放级别 5-10 内显示
Marker-2 -> (max_zoom:15, min_zoom:10) //将在缩放级别 10-15 内显示

由于我正在开发一个 jQuery 插件,我只想使用没有附加组件的原始 API。

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    假设地图是管理 gmap 的实例化对象,我会这样做:

    var zoomLevel =  map.getZoom();
    if (zoomLevel>=5 && zoomLevel<=10) { 
         // call the setMarker function for the marker1
    } else if (zoomLevel>10 && zoomLevel<=15) {
         // call the setMarker function for the marker2
    }
    

    也许您想处理缩放更改事件,如果是这样,请查看:http://code.google.com/apis/maps/documentation/javascript/events.html

    【讨论】:

    • 这个遮阳篷给了我一个关于该做什么的提示。谢谢!
    【解决方案2】:

    您可以将标记管理器与 API v3 一起使用。 http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/ 中的示例使用最新的 Maps API,它们似乎工作得很好。

    有关其他选项,例如 Marker Clusterer 和 Fusion Tables,请参阅 http://code.google.com/apis/maps/articles/toomanymarkers.html

    您也可以按照@lucke84 在他们的回答中的建议,检查缩放级别并在地图上添加/删除标记。

    【讨论】:

    • 我推断您为 Marker Manager 设置了一个例外,因为在问题中特别提到了它作为 v2 中的一个可行选项。值得一提的是:Fusion Tables 不是附加组件,链接中的其他一些项目是通用方法,而不是特定库。但归根结底,听起来您从@lucke84 得到了答案,所以祝您好运!
    猜你喜欢
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多