private boolean isContain(double center_lng, double center_lat, List<Map<String, Double>> array_points) {
double total_angle = 0;
for (int i = 0; i < array_points.size(); i++) {
Map<String, Double> point = array_points.get(i);
Map<String, Double> next_point = null;
if (i < array_points.size() - 1) {
next_point = array_points.get(i + 1);
} else {
next_point = array_points.get(0);
}
double angle = getAngle(center_lng, center_lat, point.get("lng"), point.get("lat"), next_point.get("lng"), next_point.get("lat"));
total_angle = total_angle + angle;
}
if ((int) (total_angle * 100) == (int) (2 * Math.PI * 100)) {
return true;
} else if (total_angle == 0) {
ret
判断点在凸多边形内(基于经纬度坐标)
最新推荐文章于 2022-03-31 02:46:28 发布
该博客介绍了如何通过经纬度坐标判断一个点是否位于凸多边形内部的算法。主要包含三个核心函数:isContain用于判断点是否在多边形内,getAngle计算两个边之间的夹角,getDistanceBetweenPointsNew计算两点之间的距离。通过对多边形各边与中心点的角度求和,判断总角度是否等于360度来确定点的归属。
摘要由CSDN通过智能技术生成