[发明专利]一种点与复杂多边形的位置关系判断方法及存储介质在审
申请号: | 202211307058.1 | 申请日: | 2022-10-24 |
公开(公告)号: | CN115619971A | 公开(公告)日: | 2023-01-17 |
发明(设计)人: | 刘雨 | 申请(专利权)人: | 昆明能讯科技有限责任公司 |
主分类号: | G06T17/20 | 分类号: | G06T17/20;G06T17/05;G06T7/62;G06F16/29 |
代理公司: | 昆明今威专利商标代理有限公司 53115 | 代理人: | 赛晓刚 |
地址: | 650000 云南省昆明市经开区云大*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 复杂 多边形 位置 关系 判断 方法 存储 介质 | ||
本发明公开了一种点与复杂多边形的位置关系判断方法及存储介质,方法包括:步骤(1)划分网格区间并分配多边形;步骤(2)在每个区间上生成网格;步骤(3)多边形切割划分;步骤(4)网格数据缩编;步骤(5)目标点与多边形的位置判断。本发明所述的点与复杂多边形的位置关系判断方法,把大量的多边形分配到了不同的网格区间并在不同的区间上合理地设计网格大小,大大减少了网格过大或过小造成的性能损失或空间浪费。另一方面,本发明利用散列存储网格信息并做缩编和删减,相比现有技术直接对网格的存储,大大减少了网格存储的空间占用。
技术领域
本发明涉及GIS领域,具体涉及一种点与复杂多边形的位置关系判断方法及存储介质,以求实现低存储开销和较优秀的判断效率。
背景技术
在GIS领域,判断点和多边形的位置关系是一种常见的应用场景,例如:判断车辆是否处于电子围栏面内以向驾驶员发送警告、判断行人是否进入商圈范围内以向行人推送商圈广告等。业界一般采用射线法来进行判断,即任选多边形内一个点,与目标点连成射线,计算射线与多边形边的交点数,交点数为奇数则目标点在多边形内,否则目标点在多边形外。
如果多边形的边数很多,会先利用网格法进行预处理:构造一个网格把多边形进行切割,然后逐一计算每个格子与多边形的关系,并将格子分发到三个集合P(格子完全被多边形覆盖)、Q(格子完全不被多边形覆盖)、R(格子部分被多边形覆盖),随后若目标点落在集合P或Q中的格子则无需计算即可得知点是否在多边形内,若目标点落在集合R上,也只需用射线法计算R上与多边形覆盖的部分是否与目标点相交即可,计算量大幅减少。
然而,实际应用中,往往需要将目标点与多个多边形进行位置判断,射线法及其网格预处理法在面对大量多边形时判断时存在一定缺陷,切割网格的格子宽高由经验公式获得,但面对大量大小不同的网格,宽高的确定就容易顾此失彼,宽高值过大则小多边形几乎会全部落入集合R,导致计算量上升,宽高值过小则多边形被切割出了过多的格子,浪费过多存储空间和预处理时间。
发明内容
本发明针对点与复杂多边形的位置关系判断场景,提供一种点与复杂多边形的位置关系判断方法及存储介质,以实现低存储开销和较优秀的判断效率。
本发明的技术方案为:
一种点与复杂多边形的位置关系判断方法,包括以下步骤:
步骤(1)划分网格区间并分配多边形
计算每个多边形的最小外接矩形(Envelope),及Envelope的宽度w和高度h,记并将所有多边形按其s的值由小到大排序,最小的s值记为smin,最大的s值记为smax。
输入区间数en,则区间宽度因此,构建区间
E1=[smin,smin+ew),
E2=[smin+ew,smax+2*ew),
...,
Ei=[smin+(i-1)*ew,smax+i*ew),
...,
Een=[smin+(en-1)*ew,smax]
遍历每个多边形,若一个多边形的s值在区间i的取值范围内,则将此多边形分配到区间i。
步骤(2)在每个区间上生成网格
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明能讯科技有限责任公司,未经昆明能讯科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211307058.1/2.html,转载请声明来源钻瓜专利网。