如何获得构建Polygon谷歌地图的点数组

时间:2016-11-12 11:58:20

标签: google-maps dictionary polygon

我想使用谷歌MAP建立一个多边形区域作为图片,你可以知道如何获得该区域的坐标数组?

enter image description here

picture of desired polygon

1 个答案:

答案 0 :(得分:1)

您可以使用至少3个元素的lat, lng个数组来构建多边形。

如果数组未关闭, Google地图将默认关闭它。

虽然对于 DBMS 的大部分内容,您必须保存已关闭的坐标数组。关闭是什么意思?基本上,数组的第一个和最后一个点是相等的。像 MongoDB 这样的 DBMS 会为格式错误的地理空间数据引发错误。 MongoDB Documentation on $polygon。另外需要提及的是, MongoDB 只接受lng, lat格式化的坐标。

Official Google Maps Documentation on Polygons可以看出,您可以从坐标数组开始绘制多边形:

// Define the LatLng coordinates for the polygon.
var triangleCoords = [
    {lat: 25.774, lng: -80.190},
    {lat: 18.466, lng: -66.118},
    {lat: 32.321, lng: -64.757}
];

然后你可以构建它并在地图上设置它:

// Construct the polygon.
var bermudaTriangle = new google.maps.Polygon({
    paths: triangleCoords, //Array of Coordinates
    strokeColor: '#FF0000', //Color of the line
    strokeOpacity: 0.8, //Color opacity
    strokeWeight: 3, //Line weight
    fillColor: '#FF0000', //Inner Color
    fillOpacity: 0.35 //Inner color opacity
 });
 //Set it on the map
 bermudaTriangle.setMap(map);

然后,您可以使用clickListenerinfoWindows

向多边形添加信息
// Add a listener for the click event and opens infoWindow
bermudaTriangle.addListener('click', showArrays);

infoWindow = new google.maps.InfoWindow;

您可以阅读有关infoWindows here的更多信息。

最后,here你可以找到一个使用Google Maps Docs和AngularJS组成的Plunker。当然,您可以使用纯Javascript来完成。

最后但并非最不重要的是,确保边界上有点并且坐标合理lat, lng

我希望我能提供帮助。