答案 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);
然后,您可以使用clickListener
和infoWindows
// 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
。
我希望我能提供帮助。