【问题标题】:Google Maps V3 API and MarkerManager - How to toggle selected Markers?Google Maps V3 API 和 MarkerManager - 如何切换选定的标记?
【发布时间】:2010-12-09 06:58:26
【问题描述】:

我正在使用实际的 google maps api v3。在我的地图中,我有一些标记。为了显示我的标记,我使用 MarkerManager.js。

每个标记都有一个属性“类型”(1 到 5 之间的数字)。

在我的网站上,我有一些单选按钮。

 <input type="radio" name="display_marker" value="0" checked> All
 <input type="radio" name="display_marker" value="1" checked> 1
 <input type="radio" name="display_marker" value="2" checked> 2
 <input type="radio" name="display_marker" value="3" checked> 3
 <input type="radio" name="display_marker" value="4" checked> 4
 <input type="radio" name="display_marker" value="5" checked> 5

在选择 value=0 时,我想显示所有标记。选择 value=1,我只想显示类型为 1 的标记,依此类推。

在创建我的 markermanager 数组时,我会执行以下操作:

$(document).ready(function(){

    var latlng = new google.maps.LatLng(48.135789, 11.579075);
    var mapOptions = {
        zoom: 11,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById('map'), mapOptions);

    var listener = google.maps.event.addListener(map, 'bounds_changed', function(){
        setupMarkers();
        google.maps.event.removeListener(listener);
    });

});



        function setupMarkers(){
            mgr = new MarkerManager(map);

            var mc = myobject.length;
            google.maps.event.addListener(mgr, 'loaded', function(){
                mgr.addMarkers(createMarkers(mc), 11);
                mgr.refresh();
            });
        }


        function createMarkers(nn){
            var batch = [];

            for(var ii = 0; ii < nn; ii++){

                var marker = new google.maps.Marker({
                    position: getLatLng(ii),
                    title: "marker " + ii,
                    type: getType(ii),
                });

                google.maps.event.addListener(marker, 'click', function(){
                    alert("title:" + this.title + "\ntype: " + this.type);
                });

                batch.push(marker);
            }
            return batch;
        }

我必须在我的 show_marker(val) 函数中做什么?

$("#myid input").click(function(){
  show_marker($(this).attr('value'));
});

function show_marker(val){

}

【问题讨论】:

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


    【解决方案1】:

    我使用多个标记管理器解决了这个问题。 type=1 的所有标记都转到 manager1,type=2 的所有标记都转到 manager2,依此类推。

    现在我可以显示所有标记管理并在点击时显示/隐藏它们(managerX.hide())

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2015-07-16
      • 2013-06-02
      • 2012-05-11
      • 2011-09-05
      • 1970-01-01
      相关资源
      最近更新 更多