0

私は問題があります:

  1. 地図上にマーカーを配置しました
  2. データをフィルタリングし、これらのマーカーの一部を配置したい=>jsonをサーバーに送信します
  3. 応答があり、すべてのマーカーを削除して新しいマーカーを配置しようとしましたが、gmapの色が灰色で、何も表示されません。ここにいくつかのコードがあります:

    var pins;
    
    function processFilterResult(data) {
    
        pins = data;
    
        var myLatlng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW);
        var myOptions = {
            zoom : 7,
            center : myLatlng,
            mapTypeId : google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        for(var i=0; i<pins.length; i++) {
            pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]);
        }
    }
    
    function initializeGMap() {
    
        pins = convertToJSON($("#someId"));
    
        var myLatlng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW);
        var myOptions = {
            zoom : 7,
            center : myLatlng,
            mapTypeId : google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        for(var i=0; i<pins.length; i++) {
            pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]);
        }
        google.maps.event.addListener(map, 'click', function(event) {
    
        });}
    

明確なマーカー:

 function clearOverlays() {
          for (var i = 0; i < pins.length; i++ ) {
            pins[i].setMap(null);
          }
          pins = new Array();
    }

フィルタリング:

      $.post(
                            "/mediabook/owner/filterMaps.json",
                            a,
                            function(data) {
                                clearOverlays();
                                processFilterResult(data);
                            }); 
4

1 に答える 1

1

ただし、コード全体をクリアすることはできません。コードは次のようになります。

var map;
function processFilterResult(data) 
{
    pins = data;
    var myLatLng = new google.maps.LatLng(pins[0].gpsLocationN, pins[0].gpsLocationW); 
    map.panTo(myLatLng);
    for(var i=0; i<pins.length; i++) 
    {
        pins[i] = createMarkers(new google.maps.LatLng(pins[i].gpsLocationN,pins[i].gpsLocationW), pins[i]);
    }
}
于 2012-11-22T17:30:19.170 に答える