CN111524203A - 基于gpx数据的面状矢量图生成方法及系统 - Google Patents

基于gpx数据的面状矢量图生成方法及系统 Download PDF

Info

Publication number
CN111524203A
CN111524203A CN202010328179.9A CN202010328179A CN111524203A CN 111524203 A CN111524203 A CN 111524203A CN 202010328179 A CN202010328179 A CN 202010328179A CN 111524203 A CN111524203 A CN 111524203A
Authority
CN
China
Prior art keywords
route
endpoint
state
closed polygon
flight path
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
CN202010328179.9A
Other languages
English (en)
Other versions
CN111524203B (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202010328179.9A priority Critical patent/CN111524203B/zh
Publication of CN111524203A publication Critical patent/CN111524203A/zh
Application granted granted Critical
Publication of CN111524203B publication Critical patent/CN111524203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)
  • Navigation (AREA)

Abstract

本发明提供一种基于GPX数据的面状矢量图生成方法及系统,方法包括:导入GPX数据;识别出第1个闭合多边形;识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。本发明能够简单、快速、准确的将GPX数据生成多个面状矢量图,从而简化了系统配置的复杂度和开销,提高了数据处理的效率。本发明提供的基于GPX数据的面状矢量图生成方法及系统,可用于地理信息系统中对航线数据等进行信息处理。

Description

基于GPX数据的面状矢量图生成方法及系统
技术领域
本发明属于GPX数据处理技术领域,具体涉及一种基于GPX数据的面状矢量图生成方法及系统。
背景技术
GPX是GPS数据交换格式的简写,是一种比较小的XML(EXtensible MarkupLanguage)数据格式,包括航点坐标等GPS信息,可在网络上传输并且支持网络服务。
在获得GPX数据后,为将其应用于Google Earth(三维地球)、Map Source(garmin导航仪工具软件)等应用程序,通常需要将GPX数据生成面状矢量图。现有技术中,在图像检测等地理信息处理时,将GPX数据生成面状矢量图的方法,普遍具有过程复杂、系统开销大等问题。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于GPX数据的面状矢量图生成方法及系统,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于GPX数据的面状矢量图生成方法,包括以下步骤:
步骤1,导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;
步骤2,对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;
步骤3,建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
步骤4,遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
步骤5,通过以下方式识别出第1个闭合多边形:
步骤5.1,通过以下方式识别出第1个闭合多边形的第1条边:
步骤5.1.1,检索所述航线信息配置表中有效状态的航线,定位到最靠北的航线端点,将定位到的所述航线端点称为P1端点;定位到的所述P1端点至少为两条航线的航线端点;
以P1端点正上方为基线,按逆时针方向依次计算基线与各条以P1端点为端点的各条航线的夹角,选择夹角最小的航线,将选择到的所述夹角最小的航线的状态修改为有效外边界航线状态,并将选择到的所述夹角最小的航线称为H1航线;
步骤5.1.2,从P1端点开始,沿H1航线的航迹追踪,直到追踪到H1航线的另一个端点,将追踪到的H1航线的另一个端点称为P2端点;
因此,记录以下信息:H1航线,其两端点分别为P1端点和P2端点,形成第1个闭合多边形的第1条边;
步骤5.2,通过以下方式识别出第1个闭合多边形的第2条边:
步骤5.2.1,判断P2端点是否仅为两条航线的航线端点,如果是,则执行步骤5.2.2;如果否,则执行步骤5.2.3;
步骤5.2.2,采用闭合多边形第一边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为另一条航线的端点,将另一条以P2端点作为端点的航线称为H2航线;将H2航线的状态修改为有效外边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效外边界航线状态;然后执行步骤5.3;
步骤5.2.3,采用闭合多边形第二边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为至少两条其他航线的端点;
以H1航线为基线,以P2端点为转点,以逆时针方向计算基线与其他各条以P2端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线;
将选择到的夹角最大并且航线状态为有效状态的航线称为H2航线;将H2航线的状态修改为有效内边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效内边界航线状态;然后执行5.3;
步骤5.3,通过以下方式识别出第1个闭合多边形的第3条边,并判断第3条边是否为第1个闭合多边形的最后一条边,方法如下:
步骤5.3.1,判断P3端点是否仅为两条航线的航线端点,如果是,则执行步骤5.3.2;如果否,则执行步骤5.3.3;
步骤5.3.2,P3端点不仅为H2航线的端点,还同时为另一条航线的端点,将另一条以P3端点作为端点的航线称为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效外边界航线状态;然后执行步骤5.3.4;
步骤5.3.3,采用闭合多边形第二边界状态识别算法,以H2航线为基线、以P3端点为转点,以逆时针方向计算基线与其他各条以P3端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线,记为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效内边界航线状态;然后执行步骤5.3.4;
步骤5.3.4,采用以下方法判断第3条边是否为第1个闭合多边形的最后一条边:
判断P4点坐标是否与P1点相同;如果是,P4端点与P1端点重合,P4端点即为P1端点,因此,第3条边即H3航线为第1个闭合多边形的最后一条边,由此识别到完整的第1个闭合多边形,其由以下端点首尾相接形成:P1端点-P2端点-P3端点-P1端点;
如果否,则表明H3航线不是第1个闭合多边形的最后一条边;
采用与步骤5.3相同的方法,识别出第1个闭合多边形的第4条边,并判断第4条边是否为第1个闭合多边形的最后一条边;如果是,则执行步骤6;如果否,则再采用与步骤5.3相同的方法,识别出第1个闭合多边形的第5条边,并判断第5条边是否为第1个闭合多边形的最后一条边,依此类推,直到识别出第1个闭合多边形的最后一条边,由此识别出完整的第1个闭合多边形,并定位到第1个闭合多边形的P1端点位置;
对于识别到的第1个闭合多边形,从第一条边开始,依次识别各条边的有效状态,定位到第一次出现的状态为有效内边界航线状态的边,设为第z条边,将第一条边到第z-1条边的状态更改为无效状态;然后,执行步骤6;
步骤6,从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,采用与步骤5相同的方法,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
步骤7,在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
优选的,步骤3中,航线状态为有效初始航线状态,是指:航线为灰色;所述航线状态为无效状态,是指:将对应航线变为黑线;航线状态为有效外边界航线状态,是指:将对应航线变为红色;航线状态为有效内边界航线状态,是指:将对应航线变为绿色。
本发明还提供一种基于GPX数据的面状矢量图生成方法的系统,包括:
GPX数据导入模块,用于导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;
初步处理模块,用于对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;
航线信息配置表,用于建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
无效状态航线初始定位模块,用于遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
第1个闭合多边形识别模块,用于识别出第1个闭合多边形,具体包括:第1条边识别子模块,第2条边识别子模块,第3条边识别子模块;
第2个闭合多边形识别模块,用于从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
面状矢量图生成模块,用于在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
本发明提供的基于GPX数据的面状矢量图生成方法及系统具有以下优点:
本发明能够简单、快速、准确的将GPX数据生成多个面状矢量图,从而简化了系统配置的复杂度和开销,提高了数据处理的效率。本发明提供的基于GPX数据的面状矢量图生成方法及系统,可用于地理信息系统中对航线数据等进行信息处理。
附图说明
图1为本发明提供的基于GPX数据的面状矢量图生成方法的流程示意图;
图2为本发明提供的基于GPX数据的面状矢量图生成方法的原理图;
图3为本发明提供的基于GPX数据的面状矢量图生成方法的原理图.
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于GPX数据的面状矢量图生成方法,参考图1,包括以下步骤:
步骤1,导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;需要强调的是,实际应用中,一条航线可由两个或多个航点连线而成,考虑到本专利实际应用,本发明涉及到的所有航线皆定义为两航点之间连线形成的航线。
步骤2,对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;例如,参考图2,航线端点P15为孤立的航点信息设置,因此,直接将航线端点P15设置为无效的航点信息。
步骤3,建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
作为一种具体实现方式,步骤3中,航线状态为有效初始航线状态,是指:航线为灰色;所述航线状态为无效状态,是指:将对应航线变为黑线;航线状态为有效外边界航线状态,是指:将对应航线变为红色;航线状态为有效内边界航线状态,是指:将对应航线变为绿色。
步骤4,遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
例如,参考图2,对于航线P12-P14,航线端点P14仅属于自身一条航线的航线端点,因此表明航线P12-P14不可能作为某个闭合多边形的一条边,直接将航线P12-P14状态修改为无效状态。当航线状态为无效状态时,可以简单理解为将此条航线删除,不再参与后续的面状矢量图生成步骤。
步骤5,通过以下方式识别出第1个闭合多边形:
步骤5.1,通过以下方式识别出第1个闭合多边形的第1条边:
步骤5.1.1,检索所述航线信息配置表中有效状态的航线,定位到最靠北的航线端点,将定位到的所述航线端点称为P1端点;定位到的所述P1端点至少为两条航线的航线端点;
以P1端点正上方为基线,按逆时针方向依次计算基线与各条以P1端点为端点的各条航线的夹角,选择夹角最小的航线,将选择到的所述夹角最小的航线的状态修改为有效外边界航线状态,并将选择到的所述夹角最小的航线称为H1航线;
步骤5.1.2,从P1端点开始,沿H1航线的航迹追踪,直到追踪到H1航线的另一个端点,将追踪到的H1航线的另一个端点称为P2端点;
因此,记录以下信息:H1航线,其两端点分别为P1端点和P2端点,形成第1个闭合多边形的第1条边;
步骤5.2,通过以下方式识别出第1个闭合多边形的第2条边:
步骤5.2.1,判断P2端点是否仅为两条航线的航线端点,如果是,则执行步骤5.2.2;如果否,则执行步骤5.2.3;
步骤5.2.2,采用闭合多边形第一边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为另一条航线的端点,将另一条以P2端点作为端点的航线称为H2航线;将H2航线的状态修改为有效外边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效外边界航线状态;然后执行步骤5.3;
步骤5.2.3,采用闭合多边形第二边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为至少两条其他航线的端点;
以H1航线为基线,以P2端点为转点,以逆时针方向计算基线与其他各条以P2端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线;
将选择到的夹角最大并且航线状态为有效状态的航线称为H2航线;将H2航线的状态修改为有效内边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效内边界航线状态;然后执行5.3;
步骤5.3,通过以下方式识别出第1个闭合多边形的第3条边,并判断第3条边是否为第1个闭合多边形的最后一条边,方法如下:
步骤5.3.1,判断P3端点是否仅为两条航线的航线端点,如果是,则执行步骤5.3.2;如果否,则执行步骤5.3.3;
步骤5.3.2,P3端点不仅为H2航线的端点,还同时为另一条航线的端点,将另一条以P3端点作为端点的航线称为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效外边界航线状态;然后执行步骤5.3.4;
步骤5.3.3,采用闭合多边形第二边界状态识别算法,以H2航线为基线、以P3端点为转点,以逆时针方向计算基线与其他各条以P3端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线,记为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效内边界航线状态;然后执行步骤5.3.4;
步骤5.3.4,采用以下方法判断第3条边是否为第1个闭合多边形的最后一条边:
判断P4点坐标是否与P1点相同;如果是,P4端点与P1端点重合,P4端点即为P1端点,因此,第3条边即H3航线为第1个闭合多边形的最后一条边,由此识别到完整的第1个闭合多边形,其由以下端点首尾相接形成:P1端点-P2端点-P3端点-P1端点;
如果否,则表明H3航线不是第1个闭合多边形的最后一条边;
采用与步骤5.3相同的方法,识别出第1个闭合多边形的第4条边,并判断第4条边是否为第1个闭合多边形的最后一条边;如果是,则执行步骤6;如果否,则再采用与步骤5.3相同的方法,识别出第1个闭合多边形的第5条边,并判断第5条边是否为第1个闭合多边形的最后一条边,依此类推,直到识别出第1个闭合多边形的最后一条边,由此识别出完整的第1个闭合多边形,并定位到第1个闭合多边形的P1端点位置;
对于识别到的第1个闭合多边形,从第一条边开始,依次识别各条边的有效状态,定位到第一次出现的状态为有效内边界航线状态的边,设为第z条边,将第一条边到第z-1条边的状态更改为无效状态;然后,执行步骤6;
步骤6,从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,采用与步骤5相同的方法,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
以图2为例,步骤5和步骤6可描述为:
首先识别出第1个闭合多边形:
1)首先定位到最靠北的航线端点,即图2中的P1端点;
2)第一条边:
以P1端点正上方为基线,按逆时针方向依次计算基线与各条以P1端点为端点的各条航线的夹角,选择夹角最小的航线,即为H1航线,状态为有效外边界航线状态;
此处需要说明的是,对于第一条边,其状态一定是有效外边界航线状态,所以此处的航线状态可直接得出。
3)第二条边:
P2端点仅为两条航线的航线端点,因此,根据步骤5.2.2,P2端点到P3端点的连线为H2航线,状态为有效外边界航线状态,为第二条边;
第二条边一定不是第1个闭合多边形的最后一条边,所以此时不需要判断H2航线是否为第1个闭合多边形的最后一条边。
4)第三条边:
采用与第二条边同样的方法,定位到第三条边为H3航线,其两个端点分别为P3端点和P4端点,状态为有效外边界航线状态,为第三条边,并通过步骤5.3.4的方法,由于P4端点和P1点不相同,因此,H3航线不是第1个闭合多边形的最后一条边。
5)第四条边:
由于P4端点并不仅为两条航线的航线端点,采用步骤5.3.3的方法,以H3航线为基线、以P4端点为转点,以逆时针方向计算基线与其他各条以P4端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线,定位到H4航线,其两个端点分别为P4端点和P8端点,状态为有效内边界航线状态,为第四条边,并可判断出H4航线不是第1个闭合多边形的最后一条边。
6)第五条边:
由于P8端点并不仅为两条航线的航线端点,采用步骤5.3.3的方法,以H4航线为基线、以P8端点为转点,以逆时针方向计算基线与其他各条以P8端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线,定位到H5航线,其两个端点分别为P8端点和P9端点,状态为有效内边界航线状态,为第五条边,并可判断出H5航线不是第1个闭合多边形的最后一条边。
依此类推,可得到以下结论:
第一条边,H1航线,两个端点分别为P1端点和P2端点,状态为有效外边界航线状态;
第二条边,H2航线,两个端点分别为P2端点和P3端点,状态为有效外边界航线状态;
第三条边,H3航线,两个端点分别为P3端点和P4端点,状态为有效外边界航线状态;
第四条边,H4航线,两个端点分别为P4端点和P8端点,状态为有效内边界航线状态;
第五条边,H5航线,两个端点分别为P8端点和P9端点,状态为有效内边界航线状态;
第六条边,H6航线,两个端点分别为P9端点和P10端点,状态为有效外边界航线状态;
第七条边,H7航线,两个端点分别为P10端点和P1端点,状态为有效外边界航线状态,并且,第七条边为第1个闭合多边形的最后一条边。
由此得到第1个闭合多边形。
在得到第1个闭合多边形后,从第一条边开始,第一次出现的状态为有效内边界航线状态的边为H4航线,因此,将第一条边到第3条边的状态更改为无效状态,此时更改为无效状态的主要目的原因为:这三条边不再参与到第二个闭合多边形的识别过程中。可以理解为,在识别到第1个闭合多边形后,图2可转为图3的形式。
识别出第2个闭合多边形:
1)在识别第2个闭合多边形时,首先定位到P4端点;P4端点类似于第1个闭合多边形的P1端点,即为第2个闭合多边形识别的起始端点。
2)第一条边:
从P4端点开始,识别到第2个闭合多边形的第一条边为H8航线,两个端点分别为P4端点和P5端点,状态为有效外边界航线状态;
2)第二条边:
识别到第2个闭合多边形的第二条边为H9航线,两个端点分别为P5端点和P7端点,状态为有效内边界航线状态;
3)第三条边:
识别到第2个闭合多边形的第三条边为H10航线,两个端点分别为P7端点和P8端点,状态为有效内边界航线状态;
4)第四条边:
识别到第2个闭合多边形的第四条边为H4航线,两个端点分别为P8端点和P4端点,状态为有效内边界航线状态;同时,H4航线为第2个闭合多边形的最后一条边。
由此识别到第2个闭合多边形。
依此类推,识别其他所有闭合多边形。
步骤7,在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
本发明还提供一种基于GPX数据的面状矢量图生成方法的系统,包括:
GPX数据导入模块,用于导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;
初步处理模块,用于对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;
航线信息配置表,用于建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
无效状态航线初始定位模块,用于遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
第1个闭合多边形识别模块,用于识别出第1个闭合多边形,具体包括:第1条边识别子模块,第2条边识别子模块,第3条边识别子模块;
第2个闭合多边形识别模块,用于从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
面状矢量图生成模块,用于在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
本发明提供的基于GPX数据的面状矢量图生成方法及系统具有以下优点:
本发明能够简单、快速、准确的将GPX数据生成多个面状矢量图,从而简化了系统配置的复杂度和开销,提高了数据处理的效率。本发明提供的基于GPX数据的面状矢量图生成方法及系统,可用于地理信息系统中对航线数据等进行信息处理。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过与计算机程序指令相关的硬件来完成的,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:RandomAccess Memory)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (3)

1.一种基于GPX数据的面状矢量图生成方法,其特征在于,包括以下步骤:
步骤1,导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;
步骤2,对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;
步骤3,建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
步骤4,遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
步骤5,通过以下方式识别出第1个闭合多边形:
步骤5.1,通过以下方式识别出第1个闭合多边形的第1条边:
步骤5.1.1,检索所述航线信息配置表中有效状态的航线,定位到最靠北的航线端点,将定位到的所述航线端点称为P1端点;定位到的所述P1端点至少为两条航线的航线端点;
以P1端点正上方为基线,按逆时针方向依次计算基线与各条以P1端点为端点的各条航线的夹角,选择夹角最小的航线,将选择到的所述夹角最小的航线的状态修改为有效外边界航线状态,并将选择到的所述夹角最小的航线称为H1航线;
步骤5.1.2,从P1端点开始,沿H1航线的航迹追踪,直到追踪到H1航线的另一个端点,将追踪到的H1航线的另一个端点称为P2端点;
因此,记录以下信息:H1航线,其两端点分别为P1端点和P2端点,形成第1个闭合多边形的第1条边;
步骤5.2,通过以下方式识别出第1个闭合多边形的第2条边:
步骤5.2.1,判断P2端点是否仅为两条航线的航线端点,如果是,则执行步骤5.2.2;如果否,则执行步骤5.2.3;
步骤5.2.2,采用闭合多边形第一边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为另一条航线的端点,将另一条以P2端点作为端点的航线称为H2航线;将H2航线的状态修改为有效外边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效外边界航线状态;然后执行步骤5.3;
步骤5.2.3,采用闭合多边形第二边界状态识别算法,识别出第1个闭合多边形的第2条边,具体步骤为:
P2端点不仅为H1航线的端点,还同时为至少两条其他航线的端点;
以H1航线为基线,以P2端点为转点,以逆时针方向计算基线与其他各条以P2端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线;
将选择到的夹角最大并且航线状态为有效状态的航线称为H2航线;将H2航线的状态修改为有效内边界航线状态;
从P2端点开始,沿H2航线的航迹追踪,直到追踪到H2航线的另一个端点,将追踪到的H2航线的另一个端点称为P3端点;
因此,记录以下信息:H2航线,其两端点分别为P2端点和P3端点,形成第1个闭合多边形的第2条边,状态为有效内边界航线状态;然后执行5.3;
步骤5.3,通过以下方式识别出第1个闭合多边形的第3条边,并判断第3条边是否为第1个闭合多边形的最后一条边,方法如下:
步骤5.3.1,判断P3端点是否仅为两条航线的航线端点,如果是,则执行步骤5.3.2;如果否,则执行步骤5.3.3;
步骤5.3.2,P3端点不仅为H2航线的端点,还同时为另一条航线的端点,将另一条以P3端点作为端点的航线称为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效外边界航线状态;然后执行步骤5.3.4;
步骤5.3.3,采用闭合多边形第二边界状态识别算法,以H2航线为基线、以P3端点为转点,以逆时针方向计算基线与其他各条以P3端点为端点的各条航线的夹角,选择夹角最大并且航线状态为有效状态的航线,记为H3航线;
从P3端点开始,沿H3航线的航迹追踪,直到追踪到H3航线的另一个端点,将追踪到的H3航线的另一个端点称为P4端点;
记录以下信息:H3航线,其两端点分别为P3端点和P4端点,形成第1个闭合多边形的第3条边,状态为有效内边界航线状态;然后执行步骤5.3.4;
步骤5.3.4,采用以下方法判断第3条边是否为第1个闭合多边形的最后一条边:
判断P4点坐标是否与P1点相同;如果是,P4端点与P1端点重合,P4端点即为P1端点,因此,第3条边即H3航线为第1个闭合多边形的最后一条边,由此识别到完整的第1个闭合多边形,其由以下端点首尾相接形成:P1端点-P2端点-P3端点-P1端点;
如果否,则表明H3航线不是第1个闭合多边形的最后一条边;
采用与步骤5.3相同的方法,识别出第1个闭合多边形的第4条边,并判断第4条边是否为第1个闭合多边形的最后一条边;如果是,则执行步骤6;如果否,则再采用与步骤5.3相同的方法,识别出第1个闭合多边形的第5条边,并判断第5条边是否为第1个闭合多边形的最后一条边,依此类推,直到识别出第1个闭合多边形的最后一条边,由此识别出完整的第1个闭合多边形,并定位到第1个闭合多边形的P1端点位置;
对于识别到的第1个闭合多边形,从第一条边开始,依次识别各条边的有效状态,定位到第一次出现的状态为有效内边界航线状态的边,设为第z条边,将第一条边到第z-1条边的状态更改为无效状态;然后,执行步骤6;
步骤6,从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,采用与步骤5相同的方法,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
步骤7,在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
2.根据权利要求1所述的基于GPX数据的面状矢量图生成方法,其特征在于,步骤3中,航线状态为有效初始航线状态,是指:航线为灰色;所述航线状态为无效状态,是指:将对应航线变为黑线;航线状态为有效外边界航线状态,是指:将对应航线变为红色;航线状态为有效内边界航线状态,是指:将对应航线变为绿色。
3.一种基于权利要求1-2任一项所述的基于GPX数据的面状矢量图生成方法的系统,其特征在于,包括:
GPX数据导入模块,用于导入GPX数据;其中,所述GPX数据包括航点信息和航线信息;所述航点信息包括航点的经纬度信息;所述航线信息包括:航线两端点的航线端点坐标以及连接航线两端点的航迹信息;
初步处理模块,用于对所述GPX数据进行初步处理,将不属于航线端点的孤立的航点信息设置为无效的航点信息;
航线信息配置表,用于建立航线信息配置表;所述航线信息配置表用于存储每条航线的航线ID、航线端点坐标、航迹信息以及航线状态的对应关系;其中,所述航线状态包括:无效状态和有效状态;所述有效状态进一步区分为有效初始航线状态、有效外边界航线状态和有效内边界航线状态;
初始时,设置每条航线的航线状态均为有效初始航线状态;
无效状态航线初始定位模块,用于遍历每条航线,如果遍历到的所述航线满足以下条件,表明该航线不可能作为闭合多边形的一条边,因此,将所述航线信息配置表中对应航线的状态修改为无效状态:
条件:所述航线的至少一个航线端点仅属于自身一条航线的航线端点,没有同时作为其他航线的航线端点;
第1个闭合多边形识别模块,用于识别出第1个闭合多边形,具体包括:第1条边识别子模块,第2条边识别子模块,第3条边识别子模块;
第2个闭合多边形识别模块,用于从P1端点开始,沿第1个闭合多边形的航线的航迹进行追踪,直到追踪到某个端点,该端点同时作为另一个航线状态为有效初始航线状态的航线为止,该端点即为第2个闭合多边形的第1个航线端点,即为P1端点;
然后,识别出第2个闭合多边形;依此类推,识别出所有的闭合多边形;
面状矢量图生成模块,用于在遍历得到所有闭合多边形后,将每个所述闭合多边形生成对应的面状矢量图,即得到最终的面状矢量图。
CN202010328179.9A 2020-04-23 2020-04-23 基于gpx数据的面状矢量图生成方法及系统 Active CN111524203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010328179.9A CN111524203B (zh) 2020-04-23 2020-04-23 基于gpx数据的面状矢量图生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010328179.9A CN111524203B (zh) 2020-04-23 2020-04-23 基于gpx数据的面状矢量图生成方法及系统

Publications (2)

Publication Number Publication Date
CN111524203A true CN111524203A (zh) 2020-08-11
CN111524203B CN111524203B (zh) 2023-04-25

Family

ID=71904223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010328179.9A Active CN111524203B (zh) 2020-04-23 2020-04-23 基于gpx数据的面状矢量图生成方法及系统

Country Status (1)

Country Link
CN (1) CN111524203B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332124A1 (en) * 2009-06-30 2010-12-30 Apple Inc. Analyzing and Consolidating Track File Data
CN106019987A (zh) * 2016-07-19 2016-10-12 四川九洲空管科技有限责任公司 一种三维交互式模拟航迹生成方法及系统
CN106326492A (zh) * 2016-09-19 2017-01-11 深圳市数字城市工程研究中心 空间矢量数据生成方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100332124A1 (en) * 2009-06-30 2010-12-30 Apple Inc. Analyzing and Consolidating Track File Data
CN106019987A (zh) * 2016-07-19 2016-10-12 四川九洲空管科技有限责任公司 一种三维交互式模拟航迹生成方法及系统
CN106326492A (zh) * 2016-09-19 2017-01-11 深圳市数字城市工程研究中心 空间矢量数据生成方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴小勇等: ""GPX数据在物探勘查项目设计中的应用"" *

Also Published As

Publication number Publication date
CN111524203B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN107784012B (zh) 一种数字地图兴趣点的更新方法及装置
CN105335597B (zh) 用于获取路线的轨迹模式的方法和系统
KR100971778B1 (ko) 그래프 구조를 이용하여 파노라마 이미지에 대한 이미지 매칭을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2020199565A1 (zh) 一种基于路灯杆的车辆位姿的修正方法和装置
CN109214314B (zh) 一种车道线自动融合匹配算法
CN109612475A (zh) 高精度电子地图的更新方法、装置及可读存储介质
US20210358166A1 (en) Methods, apparatuses, systems, and storage media for loading visual localization maps
CN113139031B (zh) 用于自动驾驶的交通标识的生成方法及相关装置
CN114459471A (zh) 定位信息确定方法、装置、电子设备及存储介质
CN116958316B (zh) 拓扑图生成方法、装置、计算机设备及存储介质
CN114440905A (zh) 中间图层的构建方法、装置、电子设备及存储介质
CN111524203B (zh) 基于gpx数据的面状矢量图生成方法及系统
CN118031952A (zh) 一种地图场景验证方法、路径规划方法及相关装置
CN118097045A (zh) 一种融合多源信息的局部地图动态生成方法及系统
CN109631873A (zh) 高精地图的道路生成方法、装置及可读存储介质
CN116561240A (zh) 电子地图处理方法、相关装置和介质
CN111964665A (zh) 基于车载环视图像的智能车定位方法、系统及存储介质
CN114111817B (zh) 基于slam地图与高精度地图匹配的车辆定位方法及系统
CN114838729A (zh) 一种路径规划方法、装置及设备
CN116246030A (zh) 基于非新增道路场景的高精地图单要素更新方法及装置
CN111522896A (zh) 确定平面多边形凹凸点的方法及系统
CN113074735B (zh) 一种地图数据结构的处理方法
CN112379692B (zh) 无人机航线的确定方法、装置、设备及存储介质
CN114705180A (zh) 高精地图的数据修正方法、装置、设备及存储介质
CN111458735B (zh) 自动识别指定位置闭合航线的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant