当前位置: 首页 > news >正文

射线法判断一个坐标点(经纬度)是否在一个多边形区域内部

一、问题

在 GIS、无人机巡检、电子围栏、地图系统等场景中,经常需要判断:
一个点是否位于某个多边形区域内?
关于这一问题,可以使用射线法判断。

二、射线法核心思想

  1. 从待判断的点出发,向右画一条水平射线;
  2. 统计这条射线与多边形边的交点个数;
  3. 如果交点数为奇数 → 点在多边形内部;
  4. 如果交点数为偶数 → 点在多边形外部。

三、代码实现

    /*** 判断一个点是否在一个区域中* @param point* @param polygon* @return*/public static boolean isPointInPolygon(Point point, List<Point> polygon) {boolean inside = false;int n = polygon.size();for (int i = 0, j = n - 1; i < n; j = i++) {double xi = polygon.get(i).getLongitude();double yi = polygon.get(i).getLatitude();double xj = polygon.get(j).getLongitude();double yj = polygon.get(j).getLatitude();boolean intersect =((yi > point.getLatitude()) != (yj > point.getLatitude())) &&(point.getLongitude() <(xj - xi) * (point.getLatitude() - yi) / (yj - yi) + xi);if (intersect) {inside = !inside;}}return inside;}

四、代码说明

这段代码的核心在于判断:
射线是否与当前边产生一次有效交点。
关键逻辑如下:

((yi > point.getLatitude()) != (yj > point.getLatitude()))

这一步用于判断:

  • 边的两个端点是否一个在点的上方,一个在点的下方。
  • 如果两个端点都在射线同一侧,则一定不会相交。

(xj - xi) * (point.getLatitude() - yi) / (yj - yi) + xi

这一公式用于计算:
射线与当前边的交点的 x 坐标。
其推导来自线性插值公式:

x = xi + (xj - xi) * (y - yi) / (yj - yi)

最后比较:

point.getLongitude() < 交点x坐标

表示:
交点是否在点的右侧。
如果满足条件,则说明发生了一次有效相交。


每遇到一次相交:

inside = !inside;

进行一次布尔翻转。

  • 第 1 次相交 → true
  • 第 2 次相交 → false
  • 第 3 次相交 → true

最终得到奇偶结果。

http://www.jsqmd.com/news/370595/

相关文章:

  • 【Django毕设源码分享】基于Django框架的胶济铁路博物馆管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 2026年西交利物浦大学申请机构权威:成都海学云帆凭什么稳居榜首? - 深度智识库
  • 常见问题解决 --- wps安装提示在运行
  • 1000元世纪联华购物卡(充值卡)回收攻略。盘点5大常用面值回收价格表 - 淘淘收小程序
  • 【Django毕设源码分享】基于Django的B_S架构的球类赛事发布和在线购票系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 【Django毕设源码分享】基于Django的县志捐赠与借阅信息管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 2026年度国内整合营销公司推荐榜单:实效驱动与全链路协同的双重考量 - 品牌推荐
  • 第十一届社会科学与经济发展国际学术会议 (ICSSED 2026)
  • 【Django毕设源码分享】基于python的养老院健康跟踪系统分析与设计(程序+文档+代码讲解+一条龙定制)
  • 2026年2月中国整合营销公司发布:以北京海唐新媒为代表的标杆企业深度 - 品牌推荐
  • 2026年工装设计公司推荐:权威三维评测与深度解析,为您的商业空间投资提供决策地图 - 品牌推荐
  • 2026年度国内整合营销公司推荐榜单:策略创新与实效增长双维度综合评估 - 品牌推荐
  • 盒马鲜生礼品卡回收变现精选TOP前三渠道 - 淘淘收小程序
  • 永辉超市卡回收几折?2026新版旧版全面值盘点,实测报价 - 京回收小程序
  • 2026年加气砖厂家推荐:基于产品性能与全国服务能力的综合排名 - 品牌推荐
  • 2026年工装设计公司推荐:权威三维评测与深度品牌解析 - 品牌推荐
  • 2026聚氨酯同步带厂家深度解析:宁波贝递如何以全品类传动系统构筑高端制造新标杆 - 深度智识库
  • 2026国内整合营销公司终极评测(权威机构双重背书)| 企业选型避坑全指南 - 品牌推荐
  • 2026更新版!更贴合专科生的AI论文软件 千笔·专业论文写作工具 VS 学术猹
  • 2026年2月中国整合营销公司发布:以北京海唐新媒为代表的标杆企业深度解析 - 品牌推荐
  • 2026年度工装设计公司推荐榜单:空间效能与绿色合规双维度评估的行业洞察 - 品牌推荐
  • 2026年度权威发布:最新加气砖厂家实力与全国服务能力深度解析 - 品牌推荐
  • 纤维水泥复合钢板性能实测:优质机构产品对比分析,目前知名的纤维水泥复合钢板生产厂家口碑推荐技术实力与市场口碑领航者 - 品牌推荐师
  • 2026年评价高的大庆先施工后付款装修,大庆装修局部改造,大庆家居装修设计公司优质推荐名录 - 品牌鉴赏师
  • 磁流变阻尼器的Spencer模型
  • 2026天津国际高中插班怎么选?可插班就读学校推荐与招生信息汇总 - 品牌2025
  • 2026年有实力的中企出海人力名义雇主公司采购优选名录 - 品牌鉴赏师
  • 2026年新疆旅行社推荐:五大服务商综合评估报告发布 - 品牌推荐
  • 搭建邮件系统,选择自建邮件系统还是托管企业邮箱? - U-Mail邮件系统
  • 携程任我行礼品卡回收要领与真假平台分辨 - 淘淘收小程序