我试图从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
答案 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);
}
}