0

我对 V2 api 非常熟悉,但是我已经有一段时间没有深入研究任何 javascript 了。

我正在使用此处找到的 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);

我想将加载标记的部分与初始化函数隔离到一个我可以在点击时调用的函数中,但是我似乎无法弄清楚如何去做。

非常感谢任何建议

4

1 回答 1

1

map变量设置为全局变量。将 jQueryget方法调用移至单独的函数:

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);
于 2012-06-22T22:27:22.147 回答