0

我试图从一个 xml 文件中显示多个标记,但我只能显示一个标记。这是代码,它缺少什么吗?

最好的祝福。

 downloadUrl("myfile.xml", function(data) {
    var xml = xmlParse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");   
    var position = [];
    for (var i = 0; i < markers.length; i++) {
    var lat = parseFloat(markers[i].getAttribute("lat"));
    var lng = parseFloat(markers[i].getAttribute("lng"));
    var point = new google.maps.LatLng(lat,lng);

}//finish loop

var image = '/artworks/icons/iconBlue.png';
var myLatlng = new google.maps.LatLng(lat, lng);
            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                title:"info",
                icon: image
            });


}); //end downloadurl
4

2 回答 2

1

Javascript 保存函数中每个变量的值。要创建许多标记,您的代码应如下所示:

downloadUrl("myfile.xml", function(data) {
    var xml = xmlParse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");   
    var position = [];
    for (var i = 0; i < markers.length; i++) {
        var lat = parseFloat(markers[i].getAttribute("lat"));
        var lng = parseFloat(markers[i].getAttribute("lng"));
        var myLatlng = new google.maps.LatLng(lat, lng);
        createMarker(myLatlng);
    }//finish loop
}); //end downloadurl

function createMarker(myLatlng) {
    var image = '/artworks/icons/iconBlue.png';
    var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title:"info",
      icon: image
    });
    return marker;
}
于 2012-11-20T19:09:32.733 回答
1

再次您好,如果我想删除这些标记怎么办?

要删除这些标记,请使用 Marker.setMap() 方法指定 null。所以代码是这样的:

var myMarkers = [];
downloadUrl("myfile.xml", function(data) {
    var xml = xmlParse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");   
    var position = [];
    for (var i = 0; i < markers.length; i++) {
        var lat = parseFloat(markers[i].getAttribute("lat"));
        var lng = parseFloat(markers[i].getAttribute("lng"));
        var myLatlng = new google.maps.LatLng(lat, lng);
        var marker = createMarker(myLatlng);
        myMarkers.push(marker);
    }//finish loop
}); //end downloadurl

function createMarker(myLatlng) {
    var image = '/artworks/icons/iconBlue.png';
    var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title:"info",
      icon: image
    });
    return marker;
}

function removeAllMarkers() {
  var i;
  for (i = 0; i < myMarkers.length; i++) {
    myMarkers[i].setMap(null);
  }
}
于 2012-11-21T07:43:17.153 回答