0

xmlからJavascript配列を作成する必要があります。

ajaxを使用してpolyphpからxmlデータを取得します。全て大丈夫。

次のような配列を作成する必要があります。

  point = [
                 new google.maps.LatLng(40.9921196514,47.8604733650 ),
                 new google.maps.LatLng(40.9922511293,47.8606186245 ),

        ];

コード

 downloadUrl("poly.php", function(data) {
        var xml = data.responseXML;
        var polys = xml.documentElement.getElementsByTagName("poly");
        for (var i = 0; i < polys.length; i++) {

             var pid  = polys[i].getAttribute("pid");


   point = [
          new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
        ];

私はそれをしましたが、それは機能しません..((

PS私はMySQLからデータを取得します。

..。

Xml:

    <polys>
<poly pid="1" pstatus="status1" plat="40.992638" plng="47.860474"/>
<poly pid="2" pstatus="status2" plat="40.992252" plng="47.860619"/>
</polys>
4

1 に答える 1

1

downloadUrlgoogles util.jsの関数を使用していると思いますか?

はいの場合:dataすでにドキュメントである場合、アクセスする必要はありませんdata.responseXML

のプロパティにアクセスしようとするたびにxmlエラーが発生しますxmlundefined

これを置き換えます:

    var xml = data.responseXML;
    var polys = xml.documentElement.getElementsByTagName("poly");

と:

    var polys = data.documentElement.getElementsByTagName("poly");

構文エラーがあります:

point = [
          new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")), parseFloat(polys[i].getAttribute("plng")) );
        ];

セミコロンを削除します。

("plng")) );
//---------^

ただし、目的の結果を得るには、ループの外側にポイント配列を作成する必要があります。

var point=[];

ループ内を指すようにLatLngを追加します。

point.push(new google.maps.LatLng(parseFloat(polys[i].getAttribute("plat")),  
                                  parseFloat(polys[i].getAttribute("plng"))));
于 2013-01-05T20:42:28.553 に答える