2012-02-28 15 views
2

私はダイナミックマーカーでGMAP(V3)を追加しようと、jqueryのモバイルサイトを持っている:jQueryのモバイル - REFRESH MARKERS

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); 
       }); 
      } 
     }); 
    } 
    }); 

} 

それは私のマーカーでマップをロードしますが、私はマーカーを変更すると同じコードに戻ってこのマップを表示すると、コールバック関数はスキップされ、新しいマーカーで新しいマップがレンダリングされません。私はあなたが意味する「同じコードに戻って」いますが、同じマップオブジェクトを再利用カント何

答えて

3

イムあまりわからない...まだ新しいマーカーを表示doesntの、または$('#mapContent').gmap('clear', 'markers')$('#mapContent').gmap('refresh')を呼び出そうとしました。

私はマップと追加するメソッドを作成する方法を/持っているでしょうが更新されたマーカー

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を呼び出します地図