2012-06-22 124 views
0

我對V2 api非常熟悉,但是自從我研究過任何javascript以來,這已經有一段時間了。Google Maps API - 刷新XML標記

我正在使用這裏找到的XML示例:http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/將我用PHP生成的標記加載到地圖上。該文件是jqueryget.html,迄今爲止非常好。

當我想刷新標記時出現問題。

的一段代碼是在這裏:

google.load("maps", "3", {other_params:"sensor=false"}); 
google.load("jquery", "1.3.2"); 

function initialize() { 
var myLatlng = new google.maps.LatLng(37.4419, -122.1419); 
var myOptions = { 
    zoom: 13, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

jQuery.get("data.xml", {}, function(data) { 
    jQuery(data).find("marker").each(function() { 
    var marker = jQuery(this); 
    var latlng = new google.maps.LatLng(parseFloat(marker.attr("lat")), 
           parseFloat(marker.attr("lng"))); 
    var marker = new google.maps.Marker({position: latlng, map: map}); 
}); 
}); 
} 

google.setOnLoadCallback(initialize); 

我想隔離加載標誌從初始化函數,進入功能我可以點擊調用部分,但是我似乎無法正常工作了解如何去做。

任何意見,不勝感激

回答

1

設置map變量作爲全局變量。將jQuery get方法調用移動到單獨的函數中:

var map; 

function initialize() { 
    ... 

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

} 

//Call this function from the click event 
function createMarkers() { 

    jQuery.get("data.xml", {}, function(data) { 
    jQuery(data).find("marker").each(function() { 
     var marker = jQuery(this); 
     var latlng = new google.maps.LatLng(parseFloat(marker.attr("lat")), 
           parseFloat(marker.attr("lng"))); 
     var marker = new google.maps.Marker({position: latlng, map: map}); 
    }); 
    }); 

} 

google.setOnLoadCallback(initialize);