显示xml文件中的标记以外的内容

时间:2012-11-20 19:00:06

标签: xml google-maps-api-3 google-maps-markers

我试图从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

2 个答案:

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

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