0

我有LatLng格式的座標數組。我想用這些座標來構造一個多邊形。我知道我可以用硬編碼各個座標這樣的多邊形:從LatLng點數組填充Google Maps多邊形

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

是否有可能從我的數組中的經緯度數據點放到triangleCoords創造這樣的多邊形?

回答

1

糾正我,如果我誤解了你的問題。

問: 是否可以將來自我的數組的LatLng數據點放入triangleCoords並創建多邊形?

答:

簡短的回答:沒有。不幸的是,在google.maps.Polygon代碼會神奇地揣摩指定google.maps.LatLng對象的latlng座標沒有你的機智。

您將需要使用lat()lng() API從google.maps.LatLng對象返回原始座標值並將其插入到您的陣列中。沒有捷徑。

實施例:

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

參見here用於工作的jsfiddle例子。 http://jsfiddle.net/SamuelToh/3srggbmu/