使用百度地图时产生的需求,而且在百度地图没找到相关api
/**
* @description 根据传入的坐标数组和传入的多边形边界坐标点数组集合,用射线法判断坐标点是否在多边形图形内
* @param {Array} point 经纬度坐标 eg: [120.284725, 30.199312]
* @param {Array} Polygon 多边形边界坐标点数组集合 eg: [[120.284725, 30.199312], [120.284725, 30.199312], [120.284725, 30.199312]]
* @returns {Boolean}
*/
export const isPointInPolygon = (point, Polygon) => {
var flag = false;
for (var i = 0, j = Polygon.length - 1; i < Polygon.length; j = i++) {
if (((Polygon[i][1] > point[1]) != (Polygon[j][1] > point[1])) && (point[0] < (Polygon[j][0] - Polygon[i][0]) * (point[1] - Polygon[i][1]) / (Polygon[j][1] - Polygon[i][1]) + Polygon[i][0])) {
flag = !flag;
}
}
return flag;
}
高德地图自带api(点是否在多边形内)。