如何刷新谷歌地图

时间:2012-11-22 17:01:14

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

我遇到了问题:

  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) {
    
        });}
    
  4. 明确标记:

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

1 个答案:

答案 0 :(得分: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]);
    }
}