2012-02-28 37 views
2

我有jQuery Mobile的網站,嘗試添加GMAP(V3),將動態標記:jQuery Mobile的使用GMAP v3的插件 - 刷新標誌物

bindMap: function() { 

    var markers = mapArray; //global var with coordinates 

    $('#mapContent').gmap({ 'callback': function() { 
     var self = this;   
     $.each(markers, function (i, m) { 
      if (markers[i][0] && markers[i][1]) { 

       self.addMarker({ 'position': new google.maps.LatLng(markers[i][0], markers[i][1]), 'bounds': true }).click(function() { 
        self.openInfoWindow({ 'content': markers[i][2] }, this); 
       }); 
      } 
     }); 
    } 
    }); 

} 

它加載我帶標記的地圖,但一旦我改變標記並返回到相同的代碼來顯示此地圖,它將跳過回調函數並且不會使用新標記渲染新地圖。我試圖打電話$('#mapContent').gmap('refresh')之前或$('#mapContent').gmap('clear', 'markers'),仍然不顯示新的標記。

回答

3

我不太確定你的意思是'回到相同的代碼',但不能重複使用相同的地圖對象。

我會創建的地圖,並增加了一個方法的方法/刷新標記

function addMarkers(markers, clearOld) { 

    if(clearOld) $('#mapContent').gmap('clear', 'markers'); 

    $.each(markers, function(i, m) { 
     $('#mapContent').gmap('addMarker', { 
     'position': new google.maps.LatLng(m.lat, m.lng), 
     'bounds':true, 
     'id' : m.id, 
     'icon' : 'img/marker.png' 
    },function(map,marker) { 
     $(marker).click(function(){ 
      //do something 
     }); 
    }); 
    }); 

}

所以才重用的地圖,當你想添加新的標誌物給調用addMarkers地圖