一种地球表面多边形布尔运算的算法及计算机系统技术方案

技术编号:34833240 阅读:19 留言:0更新日期:2022-09-08 07:27
本发明专利技术公开了一种地球表面多边形布尔运算的算法及计算机系统,其中算法包括以下步骤:S1,建立直角坐标系;S2,用椭球的球极投影将地球表面多边形投影为平面多边形,得到平面多边形的顶点坐标;S3,将所述平面多边形的顶点坐标作为输入,进行所述平面多边形的布尔运算;S4,S3中得到的运算结果,通过椭球球极投影反算公式,反算回地球表面。本发明专利技术提供了一种新的基于椭球球极投影的求地球表面多边形布尔运算的方法,与常用地图投影不同的是,椭球的球极投影更加简单明了,计算量明显减少,便于程序的实现,且无需考虑投影分带,同时通过算法设计,能够做到全球投影。能够做到全球投影。能够做到全球投影。

【技术实现步骤摘要】
一种地球表面多边形布尔运算的算法及计算机系统


[0001]本专利技术涉及地球表面多边形布尔运算领域,特别涉及一种地球表面多边形布尔运算的算法及计算机系统。

技术介绍

[0002]多边形的布尔运算是指多个多边形作为集合求交、并、差、对称差的运算,这是工程中具有广泛应用的基本运算。对于平面多边形,其布尔运算的算法是众所周知的,许多开源的算法库都能提供平面多边形的布尔运算。对于地球表面的多边形,通常的做法是将地球表面的多边形通过地图投影的方式投影到平面地图上,然后利用平面多边形算法求得结果,再将结果反算回地球表面。常用的地图投影方式有高斯

克吕格投影、通用横轴墨卡托投影、兰伯特投影等,这些投影公式都非常复杂,计算量较大,且顾及了投影前后长度比,从而要考虑投影分带,而且投影点往往是奇点,无法做到全球投影。地图投影本身是出于更为一般的考虑,特别是涉及地球表面长度、面积等与度量有关的问题时,地图投影是很好的选择。仅就多边形的布尔运算而言,因其无需考虑度量,采用地图投影来计算就显得过于复杂了。

技术实现思路

[0003]为了解决现有问题,本专利技术提供了一种地球表面多边形布尔运算的算法及计算机系统,具体方案如下:一种地球表面多边形布尔运算的算法,具体包括以下步骤:S1,建立直角坐标系;S2,用椭球的球极投影将地球表面多边形投影为平面多边形,得到平面多边形的顶点坐标;S3,将所述平面多边形的顶点坐标作为输入,进行所述平面多边形的布尔运算;S4,S3中得到的运算结果,通过椭球球极投影反算公式,反算回地球表面。
[0004]优选的,S1以赤道平面为x

y平面,z轴指向椭球北极,建立直角坐标系,记a为椭球长半轴,b为椭球短半轴。
[0005]优选的,S2中得到平面多边形的顶点坐标的具体步骤包括:S2.1,判断地球表面上的各个多边形的顶点polygon1、polygon2、
……
、polygonN(N≥2)是否包含北极点,若不包含进入S2.2,若包含进入S2.2

;S2.2,采用北极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=1;S2.2

,采用南极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=0。
[0006]优选的,S2.2中所述北极点投影公式,以北极点N(0,0,b)为投影点,此时除北极点外,椭球上的所有点与x

y平面上的点一一对应,则椭球上的一点P(x,y,z),在x

y平面上的
投影点Q(u,v)的坐标满足北极点投影公式:。
[0007]优选的,S2.2

中所述南极点投影公式,以南极点S(0,0,

b)为投影点,此时除南极点外,椭球上的所有点与x

y平面上的点一一对应,则椭球上的一点P(x,y,z),在x

y平面上的投影点Q(u,v)的坐标满足南极点投影公式:。
[0008]优选的,S3中进行平面多边形的布尔运算具体包括:将S2中得到的平面多边形顶点坐标,作为平面多边形布尔运算算法的输入,经过布尔运算后求得多边形顶点列表polygon,若polygon为空,则输出空列表result,否则,进入S4。
[0009]优选的,S4中,若flag=0,则根据南极点投影的反算公式,将所述多边形顶点列表polygon中各点坐标反算回地球表面,得到result并输出,否则,根据北极点投影的反算公式,将polygon中各点坐标反算回地球表面,得到result并输出。
[0010]优选的,以南极点S(0,0,

b)为投影点,此时除南极点外,椭球面上所有点与x

y平面上的点一一对应,则椭球面点P(x,y,z)在x

y平面上的投影点为Q(u,v),所述南极点投影的反算公式为。
[0011]优选的,以北极点N(0,0,b)为投影点,此时除北极点外,椭球面上所有点与x

y平面上的点一一对应,则椭球面点P(x,y,z)在x

y平面上的投影点为Q(u,v),所述北极点投影的反算公式为。
[0012]本专利技术揭示了一种计算机系统,一种计算机系统,包括处理器、存储介质,存储介质上存有计算机程序,处理器从存储介质上读取并运行计算机程序以执行上述的地球表面多边形布尔运算的算法。
[0013]本专利技术的有益效果在于:本专利技术提供了一种新的基于椭球球极投影的求地球表面多边形布尔运算的方法,与常用地图投影不同的是,椭球的球极投影更加简单明了,计算量明显减少,便于程序的实现,且无需考虑投影分带,同时通过算法设计,能够做到全球投影。
附图说明
[0014]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0015]图1为本专利技术的方法流程图;图2为本专利技术的椭球北极点投影图;图3为本专利技术的椭球南极点投影图。
具体实施方式
[0016]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例
中的附图,对本专利技术实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0017]一种地球表面多边形布尔运算的算法,具体包括以下步骤:S1,建立直角坐标系;具体地,以赤道平面为x

y平面,z轴指向椭球北极,建立直角坐标系,记a为椭球长半轴,b为椭球短半轴。
[0018]S2,用椭球的球极投影将地球表面多边形投影为平面多边形,得到平面多边形的顶点坐标;具体地,得到平面多边形的顶点坐标的具体步骤包括:S2.1,判断地球表面上的各个多边形的顶点polygon1、polygon2、
……
、polygonN(N≥2)是否包含北极点,若不包含进入S2.2,若包含进入S2.2

;S2.2,采用北极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=1;其中,所述北极点投影公式,以北极点N(0,0,b)为投影点,此时除北极点外,椭球上的所有点与x

y平面上的点一一对应,如图2,则椭球上的一点P(x,y,z),在x

y平面上的投影点Q(u,v)的坐标满足北极点投影公式:。
[0019]S2.2

,采用南极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=0。
[0020]其中,所述南极点投影本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种地球表面多边形布尔运算的算法,其特征在于,具体包括以下步骤:S1,建立直角坐标系;S2,用椭球的球极投影将地球表面多边形投影为平面多边形,得到平面多边形的顶点坐标;S3,将所述平面多边形的顶点坐标作为输入,进行所述平面多边形的布尔运算;S4,S3中得到的运算结果,通过椭球球极投影反算公式,反算回地球表面。2.根据权利要求1所述的地球表面多边形布尔运算的算法,其特征在于:S1以赤道平面为x

y平面,z轴指向椭球北极,建立直角坐标系,记a为椭球长半轴,b为椭球短半轴。3.根据权利要求2所述的地球表面多边形布尔运算的算法,其特征在于,S2中得到平面多边形的顶点坐标的具体步骤包括:S2.1,判断地球表面上的各个多边形的顶点polygon1、polygon2、
……
、polygonN(N≥2)是否包含北极点,若不包含进入S2.2,若包含进入S2.2

;S2.2,采用北极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=1;S2.2

,采用南极点投影公式计算,得到投影平面上多边形的顶点坐标,并设置标记flag=0。4.根据权利要求3所述的地球表面多边形布尔运算的算法,其特征在于:S2.2中所述北极点投影公式,以北极点N(0,0,b)为投影点,此时除北极点外,椭球上的所有点与x

y平面上的点一一对应,则椭球上的一点P(x,y,z),在x

y平面上的投影点Q(u,v)的坐标满足北极点投影公式:。5.根据权利要求3所述的地球表面多边形布尔运算的算法,其特征在于:S2.2

中所述南极点投影公式,以南极点S(0,0,

b)为投影点,此时除南极点外,椭球上的所有点与x

【专利技术属性】
技术研发人员:牛威杨书广徐凯凯李晨光王腾威
申请(专利权)人:中科星图测控技术合肥有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1