-1

これは私のコードです。xml からデータを取得します。しかし、それは機能していません..どこにエラーがあるか見てください。
私はそれを見つけることができません..私はそれに1週間以上取り組んでいます...

しかし、何もありません:(

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>

JavaScript:

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

1 に答える 1

1

xmlDocは何であると想定されていますか?

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

この行のように見えます:

    var xml = data.responseXML;

する必要があります:

    var xmlDoc = data.responseXML;

それでも問題が解決しない場合は、Google Maps API v3のドキュメントのこのチュートリアル、「PHPを使用したXMLの出力」のセクション、およびXML出力が機能することの確認に関する部分を参照してください。

次の行があることを確認してください。

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

また、ヘッダーには正しいコンテンツタイプが含まれています。ブラウザでXMLを開くか、バリデーターを介して実行します(XMLが無効な場合、requestXMLはnullになります)。

わずかに変更されたxmlの例

于 2013-02-06T19:00:16.767 に答える