jquery
  • google-maps
  • google-maps-api-3
  • jquery-ui-map
  • 2012-03-27 66 views 0 likes 
    0

    我需要过滤我的谷歌地图标记。现在,我在jquery-ui-map插件的帮助下生成一张地图。这是我的标记:可过滤的jquery-ui-map谷歌地图

    <div id="map_canvas" class="map" style="width:100%; height:600px"></div>  
    <ul id="verkaufsstellen"> 
        <li data-gmapping='{"id":"2","latlng":{"lat":52.4885039,"lng":13.3530732},"tags":"Salatfritz"}'> 
        <div class="info-box"><div class="box-inner"><p><strong>ÄHRENSACHE</strong><br />Apostel-Paulus Str. 40 - 10823 Berlin</p><i>vertreibt: Salatfritz</i></div></div> 
        </li>      
        <li data-gmapping='{"id":"5","latlng":{"lat":52.524268,"lng":13.40629},"tags":"Bierbier"}'> 
        <div class="info-box"><div class="box-inner"><p><strong>Bier, Bier Test</strong><br />Ein wunderbarer Testeintrag</p><i>vertreibt: Bierbier</i></div></div> 
        </li>   
        </ul> 
    

    和这就是我的JS:

    if ($("#map_canvas").length){ 
        $('#map_canvas').gmap({'zoom':24,'scrollwheel':false,styles:[{stylers:[{lightness:7},{saturation:-100}]}],option:[{scrollwheel:false}]}).bind('init', function(ev, map) { 
         $("[data-gmapping]").each(function(i,el) { 
           var data = $(el).data('gmapping'); 
           $('#map_canvas').gmap('addMarker', {'id': data.id, 'tags':data.tags, 'position': new google.maps.LatLng(data.latlng.lat, data.latlng.lng), 'bounds':true }, function(map,marker) { 
            $(el).click(function() { 
             $(marker).triggerEvent('click'); 
            }); 
            }).click(function() { 
             $('#map_canvas').gmap('openInfoWindow', { 'content': $(el).find('.info-box').html() }, this); 
            }); 
           }); 
         }); 
        $('#map_canvas').gmap('find', 'markers', { 'tags': 'Salatfritz' }, function(marker, found) { 
          marker.setVisible(found); 
         }); 
    } 
    

    所以JS代码的最后一部分是什么我foudn的文件,这是不是好,也许我上要愚蠢的想出来。

    我的目标是过滤“标签”后 - 所以我需要一个简单的列表,我可以在一个链接蚂蚁只显示具有此特殊标签的标记。

    也许你有一些很好的建议来完成它?

    回答

    1

    你通过标签(S)为一个字符串,但你必须把它们放入数组,以使其发挥作用。

    假设你需要在一个实例上多个标签,你会做这样的事情:

    <li data-gmapping='{"id":"2","latlng":{"lat":52.4885039,"lng":13.3530732},"tags":"Salatfritz,Bierbier"}'><!--MORE STUFF--></li> 
    

    然后:

    var tagArray = data.tags.split(","); 
    
    $('#map_canvas').gmap('addMarker', {'id': data.id, 'tags':tagArray, 'position': new google.maps.LatLng(data.latlng.lat, data.latlng.lng), 'bounds':true }, function(map,marker) { 
    /*DO STUFF*/ 
    }); 
    

    现在,你应该能够要么找到标记做

    $('#map_canvas').gmap('find', 'markers', { 'tags': 'Salatfritz' }, function(marker, found) { 
         marker.setVisible(found); 
        }); 
    

    $('#map_canvas').gmap('find', 'markers', { 'tags': 'Bierbier' }, function(marker, found) { 
         marker.setVisible(found); 
        }); 
    

    希望有帮助。

    0
    $('#map_canvas').gmap('find', 'markers', { 'property': 'tags', 'value': 'Salatfritz' }, function(marker, found) { 
          marker.setVisible(found); 
         }); 
    

    jQuery UI Map Sample code

    相关问题