2011-07-31 18 views
1

我试图从XML加载标记,但是在我的代码中存在问题。我试过用警报进行调试,但是我找不到问题所在。未显示Test2在Google地图v3中使用downloadUrl标记XML数据

<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

声明'lating'和'marker'还能用吗? – home

+0

@Kovand:我的答案无论如何有用吗? – Jiri

回答

1

您需要定义您在程序中调用的函数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"); 
    // ... 
} 
相关问题