0

私はLatLng形式の座標の配列を持っています。これらの座標を使ってポリゴンを作成したいと思います。私は、このような個々の座標を持つポリゴンをハードコーディングすることができます知っている:LatLng点の配列からGoogle Mapsポリゴンを塗りつぶす

var triangleCoords = [ 
    {lat: A, lng: A}, 
    {lat: B, lng: B}, 
    {lat: C, lng: C}] 

それはtriangleCoordsに私の配列から緯度経度データポイントを配置し、ポリゴン方法を作成することは可能ですか?

答えて

1

あなたの質問に誤解があった場合は、私を修正してください。

Q: 私の配列のLatLngデータポイントをtriangleCoordsに配置し、そのようにポリゴンを作成できますか?

A:

短い答え:いいえ。残念ながら、魔法のようにあなたのために指定google.maps.LatLngオブジェクトのlatlng座標を把握しようとするgoogle.maps.Polygonコードには粋はありません。

google.maps.LatLngオブジェクトの生の座標値を返し、配列にプラグインするには、lat()およびlng() APIを使用する必要があります。ショートカットはありません。

例:

var map = new google.maps.Map(document.getElementById("map"), 
{ 
    zoom: 4, 
    center: new google.maps.LatLng(22.7964, 79.8456), 
    mapTypeId: google.maps.MapTypeId.HYBRID 
}); 

var coordinateA = new google.maps.LatLng(18.979026,72.949219); 
var coordinateB = new google.maps.LatLng(28.613459,77.255859); 
var coordinateC = new google.maps.LatLng(22.512557,88.417969); 
var coordinateD = new google.maps.LatLng(12.940322,77.607422); 

var coords = 
    [ 
     {lat: coordinateA.lat(), lng: coordinateA.lng() }, 
     {lat: coordinateB.lat(), lng: coordinateB.lng() }, 
     {lat: coordinateC.lat(), lng: coordinateC.lng() }, 
     {lat: coordinateD.lat(), lng: coordinateD.lng() } 
    ]; 

metros = new google.maps.Polygon(
    { 
     paths: coords, 
     strokeColor: "#0000FF", 
     strokeOpacity: 0.8, 
     strokeWeight: 2, 
     fillColor: "#0000FF", 
     fillOpacity: 0.26 
    }); 

が働いJSFiddle例えばhereを参照してください。 http://jsfiddle.net/SamuelToh/3srggbmu/

関連する問題