我正在使用Azure移动服务 - NodeJS后端 我想检查一个多边形地图,如果它包含一个点。 如何使用谷歌地图库呢?或者没办法?
- 谢谢 -
var customerLatLng = new google.maps.LatLng(lat, lng);
var area = serviceParsed[0];
/*example: [{"type":"POLYGON","id":null,"geometry":[[[21.070767653166016,105.80863952636719],[21.01180841534327,105.77705383300781],[21.031036817912042,105.87455749511719]]]}] */
var triangleCoords = [];
if (area.type == "POLYGON") {
for (var j = 0; j < area.geometry[0].length; j++) {
triangleCoords.push({
"lat": area.geometry[0][j][0],
"lng": area.geometry[0][j][1]
});
};
} else { }
var bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords });
if (google.maps.geometry.poly.containsLocation(customerLatLng, bermudaTriangle)) {
filteredResults.push(item.Id);
}
答案 0 :(得分:0)
我已经研究了有关Azure移动服务的更多信息。我们可以将其他nodejs模块安装到移动服务的package.json中。 所以,这是步骤:
例如: 1. npm安装geolib 2.第3步之后的package.json文件
"engines": {
"node": ">= 0.8.19"
},
"dependencies": {
"geolib": "^2.0.21",
"point-in-polygon": "^1.0.1"
},
提交package.json
在api文件中:
var geolib = required(“geolib”); //在https://www.npmjs.com/package/geolib