谷歌地图 - 显示/隐藏标记onclick

时间:2009-11-13 14:59:41

标签: jquery google-maps

问题: 我有一张谷歌地图。 在我的init()方法中,我将所有标记设置为其lon / lat。 现在我想在我的页面上有一些复选框。 在我的地图中,我有几个冰淇淋,游乐场和加油站标记。 现在,单击Playground的复选框我想显示所有Playground标记。在禁用复选框时,我想隐藏所有的游乐场标记。 其他标记也一样。 我创建了我的Checkbox并为它编写了一个onclick函数:

function show_poi_in_map(input_id){
    var select_id = input_id;
    var var_name = $('#' + select_id).attr('checked')?1:0;
    if (var_name == 1) {
        alert('checked');
    }else{
        alert('not checked')
    }
}

但是如何继续呢? 我正在使用jQuery。也许这会有所帮助。

2 个答案:

答案 0 :(得分:2)

google.maps.event.addListener(map, 'click', function(event) {
  addMarker(event.latLng);
});
function addMarker(location) {
  marker = new google.maps.Marker({
    position: location,
    map: map,
    draggable: true,
    visible: true
  });
  google.maps.event.addListener(marker, 'click', function(event) {
    this.setMap(null);
  });
}

答案 1 :(得分:0)

我知道为时已晚。但是为了将来的使用。

我实现了相同的

我定义了两个复选框

<body>
<input type="checkbox" id="icecream" onclick="boxclick(this,'icecream')" >IceCream
<input type="checkbox" id="playground" onclick="boxclick(this,'playground')" >PlayGround
</body>

function boxclick(box,category) {
   if (box.checked)
   {
        showMarkers(category);  
   } 
   else 
   {
         hideMarkers(category);
   }
}   

function showMarkers(category)
{
    if(category=='icecream')
    {
        for(var i=0;i<icecream.length;i++)
        {   
            icecream[i].setVisible(true);
         }
     }
     if(category=='playground')
     {
        for(var i=0;i<playground.length;i++)
        {   
            playground[i].setVisible(true);
         }
     }
 }

HideMarkers的类似功能, 只需放置setVisible(false)而不是setVisible(true)