CN101533525A - 一种点面叠加分析方法 - Google Patents

一种点面叠加分析方法 Download PDF

Info

Publication number
CN101533525A
CN101533525A CN200810101816A CN200810101816A CN101533525A CN 101533525 A CN101533525 A CN 101533525A CN 200810101816 A CN200810101816 A CN 200810101816A CN 200810101816 A CN200810101816 A CN 200810101816A CN 101533525 A CN101533525 A CN 101533525A
Authority
CN
China
Prior art keywords
polygon
point
polygonal
line
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200810101816A
Other languages
English (en)
Other versions
CN101533525B (zh
Inventor
朱效民
闫杰
赵红超
方金云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Tongtu Information Technology Co., Ltd.
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008101018168A priority Critical patent/CN101533525B/zh
Publication of CN101533525A publication Critical patent/CN101533525A/zh
Application granted granted Critical
Publication of CN101533525B publication Critical patent/CN101533525B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明提供一种点面叠加分析方法,包括如下步骤:1)将每个多边形分解为一组具有方向的多边形边;2)对于每个分析点,分别构造以该分析点为起点的竖直辅助线,所述辅助线终点位于所述多边形的外包以外;3)利用扫描线算法,对所有辅助线和该多边形的所有边进行扫描,得到每条辅助线与所述多边形的第一个交点;4)对于每条辅助线,分析该辅助线产生第一个交点的多边形边的位置关系,得出所述辅助线所对应的分析点与所述多边形的位置关系。本发明能够进行大数据量点与多边形关系的判断。对于任何一条辅助线,只要扫描到第一个交点,即可得到此线对应的点在多边形内还是在多边形外。因此本发明能够减少运算量,大大提高点面叠加的运算速度。

Description

一种点面叠加分析方法
技术领域
本发明涉及应用于地理信息系统中的空间叠加分析算法,特别地,本发明涉及到一种点面叠加分析方法。
背景技术
地理信息系统(GIS)是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。地理信息系统的核心是处理空间地理数据,包括点面叠加、线面叠加和面面叠加,本发明主要涉及点面叠加分析。
点面叠加分析就是判断点与多边形的位置关系,这是计算几何的基本问题。很多专家学者在点与多边形关系的判断上做了深入的研究,并提出了许多可行的方法,如:角度法,射线法等。但是,对于大数据量的点,这些方法并没有给出可行的方案。对于大量点与多边形关系的判断,按照目前的方法,只能一次计算得到一个点与多边形的关系;有多少个点,就需要计算多少次。而大数据量的点裁剪、点面求交和点面之差在GIS中是基础的算法,不但涉及到点面叠加,甚至线面、面面叠加也要用到若干个点与一个或者多个多边形内外关系的判断。而角度法和射线法都是一次只能得到一个交点与面的关系,当数据量大时,这种暴力算法计算效率差的问题就更加突出。
另一方面,扫描线算法是经典的输出线段交点的算法。此算法是由Bentley和Ottmann提出的,其最原始的目的是对给定一系列线段,求出所有这些线段的交点并输出。其输入是一系列线段,输出是这些线段之间的交点。
发明内容
本发明的目的是克服现有技术的不足,应用扫描线算法,根据线段之间的交点,对大数据量点与多边形关系进行判断,从而提供一种具有高计算效率的点面叠加分析方法。
为实现上述发明目的,本发明提供的点面叠加分析方法,包括如下步骤:
1)每次取一个多边形,对该多边形的方向进行初始化,将每个多边形分解为一组具有方向的多边形边;这里,面的几何意义就是多边形,多边形包含一个外环以及零个、一个或者多个内环;
2)对于每个分析点,分别构造以该分析点为起点的竖直辅助线,所述辅助线终点位于所述多边形的外包以外;
3)利用扫描线算法,对所有辅助线和该多边形的所有边进行扫描,得到每条辅助线与所述多边形的第一个交点;
4)对于每条辅助线,分析该辅助线所对应的分析点和与该辅助线产生第一个交点的多边形边的位置关系,得出所述辅助线所对应的分析点与所述多边形的位置关系。
上述技术方案中,所述步骤1)中,将顺时针方向初始化为所述多边形的正方向,多边形的外环为顺时针方向,内环为逆时针方向。
上述技术方案中,所述步骤2)中,首先通过所述多边形的外包过滤,排除位于所述多边形外包以外的点,将剩余的点作为分析点。
上述技术方案中,所述多边形的外包是矩形外包。
上述技术方案中,所述步骤2)中,构造所述辅助线的方向为竖直向上;所述步骤3)中,所述扫描线算法的扫描方向为从下至上。
上述技术方案中,所述步骤4)中,当所述辅助线与一条多边形边过同一交点且二者为相交关系时,若与所述辅助线相应的分析点在多边形边的左侧,则判断该分析点在多边形的外部;若分析点在多边形边的右侧,则判断该分析点在多边形的内部。
上述技术方案中,所述步骤4)中,当所述辅助线与一条多边形边过同一交点且二者为接触关系或重叠关系时,则判断与所述辅助线相应的分析点在多边形的边界上。
上述技术方案中,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与两条多边形边都是接触关系时,如果所述辅助线对应分析点正好是交点,则分析点在多边形的边界上。
上述技术方案中,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与两条多边形边都是接触关系时,如果所述辅助线对应分析点不是交点,则对两条多边形边的局部方向进行判断,如果两条多边形边的局部方向是顺时针方向,当所述分析点相对于两条多边形边均在右侧时,则判断分析点位于所述多边形的内部,当所述分析点相对于两条多边形边不是均在右侧时,则判断分析点位于所述多边形的外部;如果两条多边形边的局部方向是逆时针方向,当所述分析点相对于两条多边形边均在左侧时,则判断分析点位于所述多边形的外部,当所述分析点相对于两条多边形边不是均在左侧时,则判断分析点位于所述多边形的内部。
上述技术方案中,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与其中一条多边形边是重叠关系,而与另一条多边形边是接触关系时,则对辅助线与相接触的多边形进行分析,若与所述辅助线相应的分析点在所述相接触的多边形边的左侧,则判断该分析点在多边形的外部;若分析点在所述相接触的多边形边的右侧,则判断该分析点在多边形的内部。
上述技术方案中,所述步骤4)中,在扫描过程中同步判断步骤3)中得到的过交点的辅助线所对应分析点与所述多边形的点面关系。
本发明解决GIS空间叠加分析中的基础算法问题:大数据量点与多边形关系的判断。应用扫描线算法解决了各种特殊类型的交点处理,并且对多边形一次初始化就能得到所有交点与多边形的关系。该发明充分分析并巧妙利用扫描线算法的扫描顺序,对于任何一条辅助线,只要扫描到第一个交点,即可得到此线对应的点在多边形内还是在多边形外。根据扫描线算法的性质,对任意一条竖直向上的辅助线而言,第一个被扫描到的交点必然是沿着辅助线的起点(也就是分析点)到终点方向的第一个交点。这个交点到起点之间没有任何其他的交点,因此可以根据辅助线的起点也就是分析点与过当前交点的多边形的边的关系判断得到分析点与多边形的位置关系。因而本发明能够减少运算量,大大提高点面叠加的运算速度。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1是过同一点的线段分布的所有可能的分类示意图
图2是点面叠加实现步骤示意图
图3是点与多边形两邻接边关系判断示意图
图4是多边形边内外侧点与多边形内外点示意图
图5是经过交点的线段顺序反置时,产生新的邻接线段对的示意图
图6是有序线段束示意图
图7是经过交点的线段在过交点后线段顺序改变示意图
图8是新插入线段时,线段间的邻接关系发生改变示意图
具体实施方式
点与多边形的位置关系包括点在多边形内,点在多边形外和点在多边形边界上三种情况。本发明的点面叠加分析是基于相关联的过同一点的线段簇的处理,通过这一处理就可以判断出点与多边形的位置关系属于上述三种情况中的哪一种。
下面结合附图和实施例对本发明作进一步地描述。
实施例1
本实施例是得到若干点与一个多边形内外关系的算法,每次取得一个多边形,然后判断这些点与当前多边形的关系。对于多个多边形的情形,可以利用多边形外包进行过滤,得到当前多边形外包内仍然没有归属的点作为分析点。本实施例中,外包选取包含多边形所有顶点的最小矩形。判断一个点是否在外包内仅仅比较其坐标值的大小即可,从计算机计算的角度而言,外包过滤仅仅是数值的大小比较,而不是复杂的乘除运算,因此外包过滤是非常快的。所以一般的步骤是对每个多边形先用外包过滤(这个速度很快的),然后对这些在外包内的点计算点与多边形的关系。所以多个点与多个多边形的关系转化为多个点与单个多边形的关系的判断。本发明的基本的操作即若干点与一个多边形的关系判断,遵循以下步骤:
1、对每个分析点,均构造一条辅助线(如图2所示)。该辅助线以分析点为起点,竖直向上,直到恰好跨过此多边形外包的边界。并且,该辅助线段结构中存储一个指向分析点的指针,以标记此辅助线对应哪个分析点。对多边形,以顺时针方向将其分解为一组具有起点和终点的多边形边。如果在点面叠加计算中,一个面不仅具有外环还具有内环(也就是洞),则内环方向是逆时针,外环方向是顺时针。即将顺时针方向初始化为所述多边形的正方向。
2、依次把所述辅助线以及多边形的边插入到基于扫描线算法的线段处理模块中。本步骤中,所述基于扫描线算法的线段处理模块每次扫描到一个事件点(在扫描线算法中,事件点包括线段的起点、终点和各线段的交点)时删除终止于此点的线段,把开始于此点的线段加到当前激活线段集合中,把经过此点的线段的顺序反置。本步骤中,还需要把所有经过该事件点的线段(包括终止于此点、经过此点以及始于此点的线段)输出,以便在步骤3中进行进一步地处理。在具体实现中,多边形的边与所述辅助线可以用不同的颜色属性或其它标记进行区分。通常地,扫描线算法的扫描方向都是从左至右,从下至上,本实施例中之所以由下向上构造辅助线,就是为了和扫描方向相配合。如果扫描线算法中采用从上至下的扫描方式,则构造辅助线也应该采用从上至下的方式,即从分析点起竖直向下作辅助线。
下面介绍本步骤中具体的线段处理方法:
基于扫描线算法计算线段交点,其输入信息是一系列的线段,在线面叠加中包含线和多边形上的线段,输出信息是这些线段的交点。本发明对扫描线算法做了改进,得到了过同一点的所有线段。首先,接收线段,得到事件点结构;然后,从事件点结构中取得最小的事件点,对与此点关联线段进行处理,并把该线段存入临时线段集合,更新事件点结构;最后,当事件点结构为空时,输出交点集合和临时线段集合。在图1中,对扫描线算法流程做了相应的说明。该算法具体包括以下步骤:
a、做初始化操作,在初始化操作过程中,用所有输入线段的端点初始化事件点结构Q,并对初始化后的事件点结构Q根据端点的坐标做排序;初始化当前激活线段束R为空集合;设定当前所有线段有序集合为S;设定当前输出交点集合I为空集合。
扫描线算法的基本思想是采用一条虚拟的竖直直线(即扫描线)从左到右顺次扫描所有线段,直到结束。在这一扫描过程中,与扫描线相交的线段为所述的当前激活线段。所述的当前所有线段有序集合是指从输入的几何要素读取得到的线段,例如,对于任一多边形,把多边形的组成线段插入到此集合中去,当所有线段读取结束后,要按照线段的左端点(对竖直线则是其下端点)按照从左到右、从下到上的顺序进行排序。
b、判断Q是否是空,如果是空集合,则计算结束,I即为计算而得的交点的集合;否则循环以下操作(步骤c至步骤g)直至Q是空集合。
c、从Q中取得坐标值最小的事件点p,并将其从Q中删除。这里的最小,首先是看其横坐标,即X值,X值小的即靠左的排在前边。对于X坐标相同的,再看其Y值,Y值小的即靠下的排在前边。
d、查找R中以p为终点的线段,把该线段存取到临时线段集合segs中后,在R中依次删除上述线段;在删除过程中,R中的线段顺序会发生改变,当被删除线段只有一个或者没有相邻线段时,直接执行步骤e;当被删除线段有两条相邻线段时,这两条相邻线段由不相邻转变成相邻,计算这新的两条相邻线段是否存在交点。如存在交点,则将该交点添加到Q中,然后执行步骤e;如不存在交点,则直接执行步骤e。
在本步骤中,R中的线段顺序是一个临时的位置关系,是与当前的事件点相关的。在当前事件点处,做一条竖直线,则按照与此线的交点的上下关系来维持当前线段束的顺序。如图6:可以得到其顺序。整个线段束的有序性并不是到一个事件点去计算的,而是始终维持这样一个顺序,其保证措施即:
I插入一条线段时,给这条线段找到一个合适的位置。
II删除一条线段时,删除之即可。
III当事件点在一个交点位置时,要对过当前点的线段的顺序反置,如图7:在交点左侧,其顺序从下而上是A,B,C;而到了交点的右侧,其顺序是CBA。
本步骤中,所述的两线段相邻即在当前事件点处,做一条竖直的直线,这条直线必然与两线段都相交。若两交点之间没有其他的交点,则两线段相邻。如图8:左侧位置时,两线段是相邻的。但是在右侧的虚线位置,两线又不是相邻的,从相邻到不相邻的变化是发生在如图8所示的点,在这个事件点时,把线段插入进去,从而导致了顺序的改变。
e、查找R中经过事件点p的线段,把查找到的线段存取到临时线段集合segs中,此时的事件点p为正常相交的交点,输出交点到I;输出交点的过程是原始的扫描线算法中的关键步骤,而在本发明的实现中,并不需要输出交点到I。将所查找到的线段的顺序反置。当R的顺序发生变化后,将会出现新的由不相邻转变成相邻的线段,计算新的相邻线段是否存在交点。如存在交点,则将该交点添加到Q中,然后执行步骤f;如不存在交点,则直接执行步骤f。
本步骤中,过同一个交点的线段可能有两条或者两条以上,此时最上端与最下端的线段会出现新的相邻线段。如图5所示,如果有两条以上线段的话,除了最顶端和最底端的两线段,中间的线段的相邻线段都没有发生变化。当把这些线段的顺序反置时,会出现新的相邻线段的即最顶端与最底端的线段。所谓的反置即按照完全相反的顺序排列,若线段由下而上的序号是1、2、3、4、5......N-1、N,则反置后其顺序为N,N-1,......,3,2,1.
如图5所示,在交点左侧时,其顺序是DABCE,到了交点右侧时,其顺序是DCBAE。ABC的顺序反置了,其余的顺序维持不变。
作为中间的线段的B的邻接线段没有变化,仍然是AC。而对于顶端的C和底端的A,其邻接线段发生了变化,A有了新的邻接E,因此需要对AE进行计算,从而得到一个交点。同理,需要对CD进行计算,只是它们没有交点而已。
f、从S中选取从点p起始的线段,在S中删除,加入到R中,把所选取的线段加入到segs中去,新插入的线段会导致R中线段顺序的变化,计算新插入的线段与其相邻线段间是否存在交点。如存在交点,则将该交点添加到Q中,然后执行步骤g;如不存在交点,则直接执行步骤g。
g、segs中的所有线段就是过当前交点的线段,包括起点、终点在当前交点以及经过当前交点的线段。本发明中,需要输出当前交点及过当前交点的线段,然后对这些过同一点的线段进行计算,即可得到线段关联的点与多边形的位置关系。
3、单独对每条辅助线进行分析,根据该辅助线和与之过同一点的多边形边的关系,得出相应分析点与多边形的位置关系。
本步骤得主要思路是:对过当前事件点的辅助线与多边形的边进行计算。因为辅助线上从起点开始到当前的事件点之间并没有任何其他交点,因此通过起始点与多边形的一条或者两条边的局部位置关系可以得到分析点与多边形的位置关系。之后,对当前交点对应的辅助线段设置访问标记,意即此辅助线对应的分析点与多边形的关系已经得到,以后再扫描到此辅助线无需再进行判断。这样是为了扫描线算法接口的统一,即每次把过当前点的线段暴露出来允许用户对这些线段进行处理但不允许用户深入到线段处理接口的内部去删除这些线段。若单独实现点面叠加,当扫描到一个交点时,即可得到当前辅助线段对应点与多边形的关系,则可以直接把此辅助线段从扫描线结构中删除,这样可以提高计算速度。根据扫描线算法的特点,扫描到事件点的顺序是从左往右,从下往上的,扫描到的第一个交点必然是此辅助线与多边形所有交点自下而上的第一个交点,因此根据辅助线的起点也就是分析点与过交点的多边形边的位置关系即可得到分析点与多边形的位置关系。
另外,步骤2中扫描到的交点可能同时输出多条辅助线,这是由于有多个分析点具有相同的横坐标,这样辅助线可能部分重合。此时将所述各条辅助线分开处理,依次选取一条辅助线,对该辅助线和过当前交点的多边形边进行分析。
下面详细描述辅助线与多边形边的位置关系分类以及相应的处理方法。
因为只针对一个多边形,所以正常条件下,过同一交点的多边形的边至多有两条,因此可以根据过同一交点的多边形边的条数进行分类。
通过分析构造的辅助线的特点,每个点只构造一条辅助线,并且任意两条辅助线都不相关,对构造的辅助线段标记为red,对多边形的线段标记为blue,以区分线段种类。在后续的介绍中,red线都是指根据分析点构造的辅助线,blue线指多边形的边。
得到一个交点时,由于可能存在一条或多条red线段,当存在多条red线段时,要把这些线段分开处理,即一次取一条red线段与多边形的边进行计算。以叠加中所有可能出现的线段分布情形为依据,根据过当前事件点的多边形的边数为1或2,可得线段的分布情形为red1_blue1和red1_blue2,如附图1所示。
Red1_blue1:对过同一点(指事件点)的线段的位置关系可能是相交关系、接触关系或重叠关系,如附图1所示。
首先通过计算得出辅助线与多边形的边的位置关系。计算方法是对第一条线段的两个端点分别计算与第二条线段的关系(在左侧、右侧、在线上、在延长线上等);然后反之,计算第二条线段的两端点与第一条线段的关系。当然,某些线段之间的关系可能无须全部计算上述四次即可得到结果。这是本领域常有方法,因此这里不再赘述。
若辅助线与多边形的边是相交关系,也就是第一种情形,则计算辅助线的起点(也就是分析点)与多边形的边的位置关系。因为当前事件点到起点之间没有其他交点,因此根据分析点与多边形边的左右关系即可得到点与多边形的关系。如前文所述,多边形边为具有起点和终点的有向线段,因此可以方便地计算出分析点是在多边形边的左侧还是右侧。若分析点在多边形边的左侧,则判断分析点在多边形的外部;若分析点在多边形边的右侧,则判断分析点在多边形的内部。
若辅助线与多边形的边是接触关系(即第二种情形,辅助线的起点在多边形边上),则点即在多边形的边界上;
若是辅助线与多边形的边是相交关系(即第三种情形,辅助线与多边形边部分重叠),则点也是在多边形的边界上。
Red1_blue2:如图1所示,根据red线段(也就是辅助线)与两个blue线段(也就是多边形的边)的关系,即分别求red与blue0、red与blue1的关系。若全是接触类型,根据线段分部的不同可以得到有三种类型的接触,即前三种类型。根据辅助线的起点是否等于当前的事件点,可得到是前两种情形还是第三种情形。对第三种情形,对应辅助线起点恰好是当前事件点,则分析点在多边形边界上;对前两种情形,第一种是跨越多边形的交点,即辅助线从多边形的内侧(外侧)走到了多边形的外侧(内侧)。对于第二种,则是接触类型的交点,虽然辅助线与多边形的边接触了,但是辅助线并没有穿越多边形,辅助线的从起点到当前事件点的部分必然全部在多边形的内部或者外部。虽然第一种和第二种的线段分布是不同的情形,但是其计算方式是一样的,即计算分析点与过事件点的多边形的两邻接边的局部关系(判断方法将在下文中详述),从而得到分析点与多边形的关系。
若两条blue线段中,一条是接触关系,另一条是重叠关系,并根据当前事件点是否与分析点重合,得到第四种和第五种情形。
对于第五种情形,即事件点与分析点重合,则分析点在多边形的边界上。对于第四种情形,则判断当前分析点与两线段的关系。因为分析点恰好在其中一条边的延长线上,因此只判断分析点与另一条不重叠的多边形的边的关系即可。若分析点在多边形边的左侧,则分析点在多边形的外部;若分析点在多边形边的右侧,则分析点在多边形的内部。
计算分析点与过事件点的多边形的两邻接边的局部关系,判断分析点位于多边形的内部还是外部方法如下:
因为多边形的以顺时针为正方向,所以沿着任何一条边前进,多边形内部的区域在边的右侧。对于在边右侧的点,即在多边形内部。当然,这个判断思路是有限制的,并不是说任何一个在多边形边右侧的点都在多边形内。但是至少,在多边形边的右侧,沿着相交的red线刚好跨越交点前进足够小的距离的点(叫做点M,如图4所示)必然在多边形内。而从这个M点到当前射线(即有方向的线段)关联的分析点之间没有任何多边形与当前射线的交点,因此射线关联的点(即分析点)也就在内部。在外部的情形同理。因此,可以通过点与局部线段关系的计算得到点与多边形的关系。对于有两条局部线段,则仍然是按照上述思想,具体实现与一条局部线段的判断有所不同。
具体的实现方法是:首先判断两邻接边的方向,顺时针或者逆时针(这是指两邻接边的局部方向,而不是整个多边形的方向)。两邻接边把平面区域划分为四部分,如图3所示(图3中粗线表示多边形边,细线表示辅助线,左侧图的虚线表示多边形可能的轮廓,右侧图的虚线表示延长线)。图中右侧部分表示两邻接边,以及其延长线,把平面区域分成四部分。这四部分分别对应两多边形边(实线段)的左左,左右,右左,右右区域。假设多边形边方向如图所示,则区域划分如图3所示。若是两多边形边的方向相反,则左右区域恰好相反。若两邻接边的局部方向是顺时针的(即按照边的走向,分别取第一条边的起点、第一条边的终点也就是第二条边的起点、第二条边的终点,这三个点所围的三角形的方向,以下所述邻接边的方向都是指顺次取得三个点构成的三角形的方向),则右右区域才是多边形的内侧区域,其余的皆为多边形的外侧区域;若两邻接边的局部方向是逆时针的,则左左区域是多边形的外侧区域,其余区域都是多边形的内侧。对于内环与外环,以上规则都适用。所以,根据两邻接边的局部方向,以及点与两线段的关系,可以得到点在两线段的内侧还是外侧,从而得到点是在多边形内还是多边形外。对于本发明,可以直接判断分析点所在区域,当两邻接边是顺时针时,如分析点在两邻接边的右右区域,则分析点在多边形的内部,否则分析点在多边形的外部;当两邻接边是逆时针时,如分析点在两邻接边的左左区域,则分析点在多边形的外部,否则分析点在多边形的内部。
在执行过程中,本步骤既可以在执行完步骤2后单独执行;也可以在步骤2的循环过程中执行,即在步骤2的子步骤g中输出当前交点及过当前交点的线段后,直接对这些过同一点的线段进行计算,得到当前交点所对应的分析点与多边形的位置关系。
4、按照步骤3所述,依次处理所有的交点。扫描结束时,每个点与多边形的关系即可得到。对于产生交点的辅助线对应的点,即可根据其扫描到的第一个交点时,点与过交点的多边形的边的位置关系得到分析点与多边形的关系;对于没有产生交点的辅助线对应的分析点,分析点必然是在多边形的外部。
本发明充分利用了扫描线算法的特点-把过某点的线段集中处理,并与射线法结合,有效解决了各种特殊情形交点的情形。再者,若干点与一个多边形进行关系判断时,只对多边形作一次初始化,而非采用暴力算法去一一判断;并且,在充分考虑扫描线算法的特点后,对每条辅助线段,根据其扫描到的第一个点即可得到此辅助线的关联点与多边形的内外关系,而不是通过交点个数的奇偶性来判断。总之,该发明解决了大数据量点与多边形关系的判断,在GIS中得到很好地应用,与同类产品的相同功能对比,显著提高了计算的效率(参见表1)。
表中所述的数据要素个数即输入数据的点的个数。结果要素个数即经过计算得到的在多边形内部的点的个数。时间的单位是秒。
表1
 
数据要素个数 结果要素个数 本发明的时间 ArcGIS的时间
649592 19710 6 9
649592 134611 28 59
649592 272536 66 99
649592 407147 105 140

Claims (11)

1.一种点面叠加分析方法,包括如下步骤:
1)每次取一个多边形,对该多边形的方向进行初始化,将每个多边形分解为一组具有方向的多边形边;
2)对于每个分析点,分别构造以该分析点为起点的竖直辅助线,所述辅助线终点位于所述多边形的外包以外;
3)利用扫描线算法,对所有辅助线和该多边形的所有边进行扫描,得到每条辅助线与所述多边形的第一个交点;
4)对于每条辅助线,分析该辅助线所对应的分析点和与该辅助线产生第一个交点的多边形边的位置关系,得出所述辅助线所对应的分析点与所述多边形的位置关系。
2.根据权利要求1所述的点面叠加分析方法,其特征在于,所述步骤1)中,将顺时针方向初始化为所述多边形的正方向,多边形的外环为顺时针方向,内环为逆时针方向。
3.根据权利要求1所述的点面叠加分析方法,其特征在于,所述步骤2)中,首先通过所述多边形的外包过滤,排除位于所述多边形外包以外的点,将剩余的点作为分析点。
4.根据权利要求3所述的点面叠加分析方法,其特征在于,所述多边形的外包是矩形外包。
5.根据权利要求2所述的点面叠加分析方法,其特征在于,所述步骤2)中,构造所述辅助线的方向为竖直向上;所述步骤3)中,所述扫描线算法的扫描方向为从下至上。
6.根据权利要求5所述的点面叠加分析方法,其特征在于,所述步骤4)中,当所述辅助线与一条多边形边过同一交点且二者为相交关系时,若与所述辅助线相应的分析点在多边形边的左侧,则判断该分析点在多边形的外部;若分析点在多边形边的右侧,则判断该分析点在多边形的内部。
7.根据权利要求5所述的点面叠加分析方法,其特征在于,所述步骤4)中,当所述辅助线与一条多边形边过同一交点且二者为接触关系或重叠关系时,则判断与所述辅助线相应的分析点在多边形的边界上。
8.根据权利要求5所述的点面叠加分析方法,其特征在于,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与两条多边形边都是接触关系时,如果所述辅助线对应分析点正好是交点,则分析点在多边形的边界上。
9.根据权利要求5所述的点面叠加分析方法,其特征在于,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与两条多边形边都是接触关系时,如果所述辅助线对应分析点不是交点,则对两条多边形边的局部方向进行判断,如果两条多边形边的局部方向是顺时针方向,当所述分析点相对于两条多边形边均在右侧时,则判断分析点位于所述多边形的内部,当所述分析点相对于两条多边形边不是均在右侧时,则判断分析点位于所述多边形的外部;如果两条多边形边的局部方向是逆时针方向,当所述分析点相对于两条多边形边均在左侧时,则判断分析点位于所述多边形的外部,当所述分析点相对于两条多边形边不是均在左侧时,则判断分析点位于所述多边形的内部。
10.根据权利要求5所述的点面叠加分析方法,其特征在于,所述步骤4)中,当所述辅助线与两条多边形边过同一交点,且所述辅助线与其中一条多边形边是重叠关系,而与另一条多边形边是接触关系时,则对辅助线与相接触的多边形的边进行分析,若与所述辅助线相应的分析点在所述相接触的多边形边的左侧,则判断该分析点在多边形的外部;若分析点在所述相接触的多边形边的右侧,则判断该分析点在多边形的内部。
11.根据权利要求1所述的点面叠加分析方法,其特征在于,所述步骤4)中,在扫描过程中同步判断步骤3)中得到的过交点的辅助线所对应分析点与所述多边形的点面关系。
CN2008101018168A 2008-03-12 2008-03-12 一种用于地理信息系统中的点面叠加分析方法 Expired - Fee Related CN101533525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101018168A CN101533525B (zh) 2008-03-12 2008-03-12 一种用于地理信息系统中的点面叠加分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101018168A CN101533525B (zh) 2008-03-12 2008-03-12 一种用于地理信息系统中的点面叠加分析方法

Publications (2)

Publication Number Publication Date
CN101533525A true CN101533525A (zh) 2009-09-16
CN101533525B CN101533525B (zh) 2011-06-01

Family

ID=41104101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101018168A Expired - Fee Related CN101533525B (zh) 2008-03-12 2008-03-12 一种用于地理信息系统中的点面叠加分析方法

Country Status (1)

Country Link
CN (1) CN101533525B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882154A (zh) * 2010-06-11 2010-11-10 北京高森明晨信息科技有限公司 一种定位方法及系统
CN102568302A (zh) * 2011-12-31 2012-07-11 北京地拓科技发展有限公司 一种地图标注的方法和装置
CN102707301A (zh) * 2011-03-28 2012-10-03 上海英迪信息技术有限公司 定位装置及其定位方法
CN102750553A (zh) * 2012-06-28 2012-10-24 北京中科广视科技有限公司 一种墙体平面轮廓的识别方法
CN102890815A (zh) * 2011-07-19 2013-01-23 上海博泰悦臻电子设备制造有限公司 图形处理方法
CN101923552B (zh) * 2009-12-31 2013-08-28 华南师范大学 一种多边形矢量图层快速叠合方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923552B (zh) * 2009-12-31 2013-08-28 华南师范大学 一种多边形矢量图层快速叠合方法
CN101882154A (zh) * 2010-06-11 2010-11-10 北京高森明晨信息科技有限公司 一种定位方法及系统
CN102707301A (zh) * 2011-03-28 2012-10-03 上海英迪信息技术有限公司 定位装置及其定位方法
CN102890815A (zh) * 2011-07-19 2013-01-23 上海博泰悦臻电子设备制造有限公司 图形处理方法
CN102890815B (zh) * 2011-07-19 2016-01-06 上海博泰悦臻电子设备制造有限公司 图形处理方法
CN102568302A (zh) * 2011-12-31 2012-07-11 北京地拓科技发展有限公司 一种地图标注的方法和装置
CN102568302B (zh) * 2011-12-31 2013-10-16 北京地拓科技发展有限公司 一种地图标注的方法和装置
CN102750553A (zh) * 2012-06-28 2012-10-24 北京中科广视科技有限公司 一种墙体平面轮廓的识别方法
CN102750553B (zh) * 2012-06-28 2015-06-17 北京中科广视科技有限公司 一种墙体平面轮廓的识别方法

Also Published As

Publication number Publication date
CN101533525B (zh) 2011-06-01

Similar Documents

Publication Publication Date Title
US10083517B2 (en) Segmentation of an image based on color and color differences
Pansart et al. Exact algorithms for the order picking problem
CN101533525B (zh) 一种用于地理信息系统中的点面叠加分析方法
Chiang et al. Dynamic algorithms in computational geometry
CN101477548B (zh) 一种基于规则的通用空间数据质量检查的技术方法
CN101751449A (zh) 一种用于地理信息系统中的空间叠加分析方法和系统
CN102542035A (zh) 基于扫描线法的多边形栅格化并行转换方法
CN106021480A (zh) 一种基于网格划分的并行空间划分方法及其系统
CN102279874A (zh) 用于交互制图的快速边路由
CN105956994A (zh) 基于栅格化叠加分析的图形处理方法及装置
CN104574449B (zh) 基于dem的投影面积计算方法
CN104317886B (zh) 断层约束下网格节点插值时近邻条件数据点的搜索选取方法
CN102270236A (zh) 一种基于栅格化gis 空间关系判断方法及其系统
CN103838829A (zh) 一种基于分层次边界拓扑搜索模型的栅格转矢量系统
CN103839222A (zh) 一种基于分层次边界拓扑搜索模型的栅格转矢量并行系统
US5144679A (en) Graphic data searching and storage method
CN102881028A (zh) 一种栅格数字图像快速矢量化方法
CN110489511B (zh) 等高线接边高程错误修正方法、系统及电子设备和介质
Bannister et al. Windows into geometric events: Data structures for time-windowed querying of temporal point sets
CN101515284A (zh) 一种基于离散网格的并行空间拓扑分析方法
WO2018044247A1 (en) A computer implemented method for segmentation of a ship hull into small plates by a split-and-pack approach
CN113034515A (zh) 基于包围盒树的多边形裁剪方法、电子设备及存储介质
CN103065306B (zh) 图形数据的处理方法及装置
CN101354710B (zh) 一种线段求交的方法及装置
CN117422439A (zh) 轨道线路划分方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING ZHONGKE SUANYUAN TECHNOLOGY DEVELOPMENT CO

Free format text: FORMER OWNER: INST. OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20110624

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100190 NO. 6, KEXUEYUAN SOUTH ROAD, ZHONGGUANCUN, HAIDIAN DISTRICT, BEIJING TO: 100190 ROOM 1213, COMPREHENSIVE SCIENTIFIC RESEARCH BUILDING, NO. 6, KEXUEYUAN SOUTH ROAD, ZHONGGUANCUN, HAIDIAN DISTRICT, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20110624

Address after: 100190 room 1213, comprehensive research building, No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee after: Beijing Zhongke computer source technology development Co Ltd

Address before: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

ASS Succession or assignment of patent right

Owner name: BEIJING ZHONGKE TONGTU INFORMATION TECHNOLOGY CO.,

Free format text: FORMER OWNER: BEIJING ZHONGKE SUANYUAN TECHNOLOGY DEVELOPMENT CO., LTD.

Effective date: 20110818

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100190 HAIDIAN, BEIJING TO: 100192 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20110818

Address after: 100192, Beijing District, Haidian District science and technology road, 8, science and technology wealth center, block A, 11 North Zone

Patentee after: Beijing Zhongke Tongtu Information Technology Co., Ltd.

Address before: 100190 room 1213, comprehensive research building, No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Beijing Zhongke computer source technology development Co Ltd

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110601

Termination date: 20210312

CF01 Termination of patent right due to non-payment of annual fee