Jquery移动使用gmap v3插件 - REFRESH MARKERS

时间:2012-02-28 16:43:18

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

我有jquery移动网站,尝试使用动态标记添加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'),但仍未显示新标记..

1 个答案:

答案 0 :(得分: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