2016-11-12 64 views
-1

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

enter image description here

picture of desired polygon

+1

相关问题:[OSM to Google Maps polygons](http://stackoverflow.com/questions/36704706/osm-to-google-maps-polygons) – geocodezip

+0

另一个相关问题:http://stackoverflow.com/questions/9706484/add-search-area-outline-to-google-maps-results – xomena

+0

@xomena非常感谢你,你真的帮助我 –

回答

1

可以使用的lat, lng夫妇至少3个元素的阵列构建一个多边形。

如果阵列没有关闭,谷歌地图将默认关闭它。

尽管对于大多数DBMS,您必须保存一个关闭的坐标数组。关闭意味着什么?基本上,数组的第一个和最后一个点是相等的。 DBMS like MongoDB将为格式不正确的地理空间数据抛出错误。 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

我希望我一直有帮助。