我正在尝试从XML加载标记,但我的代码中存在问题。我已尝试使用警报进行调试,但我无法找到问题所在。 Test2
未显示。
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js sensor=false"></script>
//<script type="text/javascript" src="util.js"></script>
<script type="text/javascript">
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
alert("test1");
var latlng = new google.maps.LatLng(-34.397, 150.644);
var marker = new google.maps.Marker({position: latlng, map: map});
downloadUrl("data.xml", function(data) {
alert("test2");
var markers = data.documentElement.getElementsByTagName("marker");
alert("test3");
for (var i = 0; i < markers.length; i++) {
var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = new google.maps.Marker({position: latlng, map: map});
}
});
alert("test4");
}
</script>
答案 0 :(得分:2)
您需要定义在程序中调用的函数downloadUrl()
。最简单的版本是:
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
callback(request);
}
};
request.open('GET', url, true);
request.send(null);
}
在调用本身中,您需要从data
获取XML:
downloadUrl("data.xml", function(data) {
alert("test2");
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
// ...
}