2013-02-06 3 views
-1

이 코드는, XML에서 데이터를 가져옵니다. 하지만 작동하지 않습니다 ... 오류가있는 부분을 확인하십시오. 내 영어 죄송합니다Google Maps JavaScript API 관련 문제

PS가 ..

이 내 XML이다 :(
내가 일주일 이상을 위해 일하고 .. 그것을 찾을 수 없습니다 ...

그러나 아무것도 데이터 ..

<marker> 
<line id_line="1" colour="#ccc" width="4" users="line" coordinats="47.828979,40.974844;47.839451,40.985211;47.848377,40.981064;47.853699,40.984822"> 
<point lng="40.974844" lat="47.828979"/> 
<point lng="40.985211" lat="47.839451"/> 
<point lng="40.981064" lat="47.848377"/> 
<point lng="40.984822" lat="47.853699"/> 
</line> 
</marker> 

자바 스크립트 : XML은 무엇

function line() { 
      var point=[]; 
      downloadUrl("line.php", function(data) { 
     var xml = data.responseXML; 
     var markers = xmlDoc.documentElement.getElementsByTagName("marker");        
     var lines = xmlDoc.documentElement.getElementsByTagName("line"); 
     for (var a = 0; a < lines.length; a++) { 
     var colour = lines[a].getAttribute("colour"); 
     var width = parseFloat(lines[a].getAttribute("width")); 
     var points = lines[a].getElementsByTagName("point"); 

    alert (points[i].getAttribute("lat")); 

var pts = []; 
      for (var i = 0; i < points.length; i++) { 
       pts[i] = new google.maps.LatLng(parseFloat(points[i].getAttribute("lat")), 
            parseFloat(points[i].getAttribute("lng"))); 
      } 
      new google.maps.Polyline(pts,colour,width); 
      pts.setMap(map); 
      } 




    google.maps.event.addListener(pointpath,'mouseover', function() { 


     this.setOptions({strokeColor: '#3ADF00' }); 
      this.setOptions({strokeOpacity: 1.0 }); 
      this.setOptions({strokeWeight: 4 }); 
    }); 

    google.maps.event.addListener(pointpath,'mouseout', function() { 


     this.setOptions({strokeColor: '#FF0040' }); 
      this.setOptions({strokeOpacity: 1.0 }); 
      this.setOptions({strokeWeight: 2 }); 
    }); 




     var mpenc = new google.maps.InfoWindow(); 
    var contentString = "Status: " + status ; 
    google.maps.event.addListener(pointpath,'click', function(event) { 
    mpenc.setContent(contentString); 
    mpenc.setPosition(event.latLng); 
    mpenc.open(map); 
    }); 

} 

    }); 
    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); 
     } 
     }; 

     request.open('GET', url, true); 
     request.send(null); 
    } 
} 
+0

이 코드는 지나치게 많은 코드입니다. 이 코드의 일부 하위 집합으로 문제를 좁힐 수 있습니까? 콘솔에 줄 번호 나 "작동하지 않는"의미에 대한 정보가있는 오류가 있습니까? – jbabey

+0

무엇이 작동하지 않습니까? 무슨 일있어? 당신은 무엇을 기대하고 있습니까? 그리고 그것은 무엇을하지 않습니까? –

+0

안녕하세요! Stack Overflow는 코드를 게시하고 사람들이 오류를 찾아 낼 수 있도록 설계되지 않았습니다. 코드에서 수행 할 작업과 실제로 수행 할 작업을보다 자세하게 설명 할 수 있다면 도움을 얻을 수있는 기회가 더 많을 것입니다. (당신의 영어는 괜찮지 만.) –

답변

1

입니다 의사가 있어야 하나?

var xml = data.responseXML; 

가 있어야한다 : 그 문제가 해결되지 않으면

var xmlDoc = data.responseXML; 

this tutorial in the Google Maps API v3 documentation를 참조 섹션 "PHP와 XML을 출력하기"및 일부

var xml = data.responseXML; 
    var markers = xmlDoc.documentElement.getElementsByTagName("marker");        
    var lines = xmlDoc.documentElement.getElementsByTagName("line"); 

이 선 것 같은데 XML 출력이 작동하는지 확인하는 방법.

header("Content-type: text/xml"); 

그리고 헤더가 올바른 콘텐츠 유형을 포함 :

는이 라인을 가지고 있는지 확인하십시오. 브라우저에서 XML을 열거 나 유효성 검사기를 통해 XML을 실행하십시오 (XML이 유효하지 않은 경우 requestXML은 null입니다).

+0

답변 주셔서 감사합니다 .... 내 모든 XML에서 OK입니다.이 내 출력입니다. http://nn-gis.com/map/line.php/귀하의 코드를 너무 이해하기 힘들어 : ( – brio

+0

않았다 당신은 내 대답의 첫 번째 부분을 읽을 수 있습니까? 귀하의 XML이 유효하다면 그것은 아마도 문제 일 것입니다 .BTW - 내 링크의 코드는 단순한 것이 아니며, 범용 파서이며, [XML]을 파싱합니다 (http://www.geocodezip.com/v3_GenericMapBrowser.asp?filename=http://www.geocodezip.com/xmlProxy060215.asp?http://nn-gis.com/map/line.php) 그것은 목표 형식에서 약간 다른 형식입니다 . – geocodezip

+0

대답 주셔서 감사합니다. 괜찮아요 API 2와 스크립트를 작동 .. API V2와 함께하고 싶습니다 .. API를 v2 코드는 여기에있다. http://jsfiddle.net/U7sqU/.. 아마도 내가 잘못 했습니까? – brio