判断点在凸多边形内(基于经纬度坐标)

该博客介绍了如何通过经纬度坐标判断一个点是否位于凸多边形内部的算法。主要包含三个核心函数:isContain用于判断点是否在多边形内,getAngle计算两个边之间的夹角,getDistanceBetweenPointsNew计算两点之间的距离。通过对多边形各边与中心点的角度求和,判断总角度是否等于360度来确定点的归属。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值