2012-11-22 60 views
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); 
          }); 
+0

当您添加标记时,您不想创建新的地图对象,而是希望将它们添加到预先存在的对象。重要的是要注意当你的代码失败时抛出的错误 – charlietfl

+0

这是一个问题或提示?如果小费,感谢它 –

+0

ws关于错误的提示,看在控制台,并且当有一个问题包括错误信息 – charlietfl

回答

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]); 
    } 
} 
+0

非常感谢!你帮了我很多! :) –