jQuery Google Maps按ID获取标记

时间:2013-11-18 15:55:13

标签: javascript jquery google-maps-api-3

我目前有以下代码:

jQuery.each(json,function(index,value){
            var id =json[index]["id"];
            var location =json[index]["location"];
            var tel =json[index]["tel"];
            var lat=json[index]["lat"];
            var lng=json[index]["lng"];

            marker = new google.maps.Marker({
              id:id,
              position: new google.maps.LatLng (lat, lng),
              icon: {
                    path: google.maps.SymbolPath.CIRCLE,
                    fillOpacity: 1,
                    fillColor: '#002664',
                    strokeWeight: 1, 
                    strokeColor: '#FFFFFF',
                    scale: 5 //pixels
                },
              map: map
            });

            google.maps.event.addListener(marker, 'click', function() {
                jQuery('.office-information').slideUp(300);
                if(!jQuery('#office-info-'+id).is(':visible')){
                    jQuery('#office-info-'+id).slideDown(300);
                }
            });

            google.maps.event.addListener(marker, 'click', function() {
            });

            jQuery('.get-direction').on('click', function(){
                var markerID = this.id.replace( /[^\d.]/g,'');
                console.log(marker);
            });

      });

问题领域是:

jQuery('.get-direction').on('click', function(){
                    var markerID = this.id.replace( /[^\d.]/g,'');
                    console.log(marker);
                });

基本上,当我点击一个get-direction类的链接时,我会抓住它的ID并除去其中的数字以外的所有内容,这就留下了标记ID。但是如何通过id获得标记?我实际上只需要标记的纬度和经度。

任何帮助都非常赞赏。

1 个答案:

答案 0 :(得分:6)

您可以创建全局关联数组并将所有标记存储在那里。 例如。像这样

var arrMarkers = {};
jQuery.each(json,function(index,value){
    ...
    marker = new google.maps.Marker({
         ...
    });
    arrMarkers[id] = marker;
    ...
    jQuery('.get-direction').on('click', function(){
            var markerID = this.id.replace( /[^\d.]/g,'');
            console.log(arrMarkers[markerID]);
        });
}