2013-03-04 208 views
2

我很難讓我的標記顯示Google Maps V3 API。由於未定義變量,Google Maps API V3標記未顯示

我得到下面的錯誤,當我加載頁面 -

類型錯誤:XML是未定義

VAR的標記= xml.documentElement.getElementsByTagName( 「標記」);

我試過用幾種不同的方式聲明xml變量,但無濟於事。

任何幫助非常感謝。

function load() { 
    map = new google.maps.Map(document.getElementById("map_canvas"), { 
    center: new google.maps.LatLng(37.765558,-122.450867), 
    zoom: 11, 
    mapTypeId: 'roadmap' 
    }); 
    var infoWindow = new google.maps.InfoWindow; 

    // Change this depending on the name of your PHP file 
    downloadUrl("phpsearch.php", function(data) { 
    xml = data.responseXML; 
    var markers = xml.documentElement.getElementsByTagName("marker");//<- error occurs right here 
//Uncaught TypeError: Cannot read property 'documentElement' of undefined 
    for (var i = 0; i < markers.length; i++) { 
     var name = markers[i].getAttribute("name"); 
     var address = markers[i].getAttribute("address"); 
     var type = markers[i].getAttribute("type"); 
     var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")), 
      parseFloat(markers[i].getAttribute("lng"))); 
     var html = "<b>" + name + "</b> <br/>" + address; 
     var icon = customIcons[type] || {}; 
     var marker = new google.maps.Marker({ 
     map: map, 
     position: point, 
     icon: icon.icon, 
     shadow: icon.shadow 
     }); 
     bindInfoWindow(marker, map, infoWindow, html); 
    } 
    }); 
} 


function downloadUrl(url,callback) { 
var request = window.ActiveXObject ? 
    new ActiveXObject('Microsoft.XMLHTTP') : 
    new XMLHttpRequest; 

request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
    request.onreadystatechange = doNothing; 
    callback(request.responseText, request.status); 
    } 
}; 
request.open('GET', url, true); 
request.send(null); 
} 

頁是在這裏:

http://www.students.bl.rdi.co.uk/stu26984/index2.php

這似乎是修復以下問題應該有幫助,但我想不出爲什麼我仍然被告知該變量是不確定的。

Cannot load Google Maps Markers from XML variable

回答

0

downloadUrl功能將響應文本不響應對象回調。您可以更改該功能以傳遞所需的對象。當然你必須在你的回覆中收到xml。

function downloadUrl(url,callback) { 
var request = window.ActiveXObject ? 
    new ActiveXObject('Microsoft.XMLHTTP') : 
    new XMLHttpRequest; 

request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
    request.onreadystatechange = doNothing; 
    callback(request, request.status);//right here 
    } 
}; 
request.open('GET', url, true); 
request.send(null); 
} 
+0

這樣做,謝謝!這可能需要我花幾個星期才能弄清楚。 – 2013-03-04 01:23:50

相關問題