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 回答