2013-03-04 4 views
2

Google지도 V3 API에 표시하기가 어렵습니다. Google지도 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

감사합니다. 그게 내게 몇 주일이 걸릴 수도 있었어. –

관련 문제