1

Googleマップにポリゴン形状を表示するためにXMLファイルにポリゴン座標があり、xmlからそれらを取得したいだけで、以下のような配列を作成する必要があります。

 var triangleCoords = [
                              new google.maps.LatLng(51.055221725218054, -3.1630325317382812),
                              new google.maps.LatLng(51.010961025187314, -3.1359100341796875),
                              new google.maps.LatLng(51.043135193868025, -3.063812255859375)

                          ];

お返事をありがとうございます。以下のコードは、ポリゴン形状を表示していません。

var bermudaTriangle;


                        var points = "(51.055221725218054, -3.1630325317382812),(51.010961025187314, -3.1359100341796875),(51.043135193868025, -3.063812255859375)";


                        points = points.substr(1, points.length - 2).split("),(");
                        var triangleCoords = points.map(function (pointString) {
                            var latlon = pointString.split(", ");
                            return { lat: latlon[0], lon: latlon[1] };
                        });


                        // Construct the polygon
                        bermudaTriangle = new google.maps.Polygon({
                            paths: JSON.stringify(triangleCoords),
                            strokeColor: '#FF0000',
                            strokeOpacity: 0.8,
                            strokeWeight: 2,

                            fillColor: '#FF0000',
                            fillOpacity: 0.35
                        });

                        bermudaTriangle.setMap(map);

                    });

XML コードは座標を取得します。

   $(xml).find('Location').each(function () {


                        var points= $(this).find('Coodinates').text();

// ここでポイントを正常に取得できますが、上記のように配列を作成する必要があります (51.055221725218054, -3.1630325317382812),(51.010961025187314, -3.1359100341796875),(51.043135193868025, -3.065)8913

}

4

1 に答える 1

0

あなたの投稿に対する私の理解が正しければ、これは:

var points= $(this).find('Coodinates').text();

次の文字列を生成します。

"(51.055221725218054, -3.1630325317382812),(51.010961025187314, -3.1359100341796875),(51.043135193868025, -3.063812255859375)"

次のようなスクリプトを使用して、Google Maps LatLon 値の配列に変換できます。

var points = points.substr(1, points.length-2).split("),(");
var triangleCoords = points.map(function(pointString){
    var latlon = pointString.split(", ");
    return  new google.maps.LatLng(latlon[0], latlon[1]);
});

最初の行は角かっこを取り除き、文字列を配列に分割します。各エントリには 1 つのポイントのデータが含まれます。その後の配列マッピング関数は、各文字列要素を結果配列に追加される LatLng に変換します。

ここに例を示し、Google マップの LatLng を匿名オブジェクトに置き換えます: http://jsfiddle.net/Jsv3x/

于 2013-08-25T13:04:41.837 に答える