室内停车地图的自动几何校正方法技术

技术编号:15642113 阅读:59 留言:0更新日期:2017-06-16 15:09
本发明专利技术提供了一种室内停车地图的自动几何校正方法,本发明专利技术最大限度地消除点间拓扑关系的影响,实现了在Arcgis绘制室内停车地图中的线元素和面元素的端点和折点坐标纠正,消除了线元素和面元素中边的锯齿情况,并实现了应在同一水平线上线元素和面元素的对齐,提升了在Arcgis内绘制室内停车地图的效率。

【技术实现步骤摘要】
室内停车地图的自动几何校正方法
本专利技术属于矢量地图校正
,特别是涉及一种室内停车地图的自动几何校正方法。
技术介绍
室内停车地图主要是针对室内停车场实现显示、定位、导航等功能的数字化地图,其包含存在于停车场内部的各类要素,例如出入口、中继控制器、停车位入口、柱子、停车分区标识、定位传感器、隔断墙、道路、停车位、停车分区、墙和其他等。近年来随着移动互联网技术和地图数字化技术的发展,室内停车地图也实现了在移动终端设备上的展现。在人工绘制地图时,主要采用的软件包括超图、Arcgis、Mapinfo、Mapgis、AutoCAD等。当基于Arcgis人工绘制矢量图时,在绘制线、面等元素时,由于人眼的判断精度有限,在低分辨率下经常会出现锯齿,造成“线不直”、“面不平”的情况。但是Arcgis本身的软件工具包中并不能实现锯齿现象的平滑,这是由于在操作海量数据的过程中,这将影响操作系统绘图的效率。所以一旦要实现矢量数据的出图,便会出现线元素、面元素的边不直的现象。同时由于人工精度有限,当绘制某些根据实际情况应在某一水平线上的元素时,会出现不在同一水平线的情况。当比例尺被放大到一定程度时,就会出现例如停车位不对齐、隔断墙不水平等视觉反映。尽管这些情况可以通过修改端点或折点坐标来实现,但这也会大量耗费人工时间和精力,其工作量不亚于重新独立测绘制图。一旦数据量过大,由于关联的端点和折点较多,易会造成更大的误差。因此在考虑消除矢量元素锯齿、实现面元素对齐时,应最大程度减少点之间拓扑关系和关联性带来的影响,使用尽可能少的基准点调整所有节点的位置,避免重复性修改,最后根据点间是否存在拓扑关系重新在Arcgis中绘制地图信息。
技术实现思路
为了解决上述技术问题,本专利技术提出一种室内停车地图的自动几何校正方法。本专利技术所采用的技术方案是:一种室内停车地图的自动几何校正方法,包括以下步骤:步骤1:加载矢量地图数据;步骤2:判断要素类型是否为线要素LINESTRING,若是,继续执行步骤3;若不是,判断要素类型是否为面要素POLYGON,若是,继续执行步骤3;若不是,直接结束;步骤3:进行坐标的去重工作;步骤4:判断要素类型是否为线要素LINESTRING,若是,进行线段打断并重新组合,继续执行步骤5;若不是,则要素类型为面要素POLYGON,直接继续执行步骤5;步骤5:利用图的深度优先遍历方法校正两种类型的点的坐标值;步骤6:判断要素类型是否为线要素LINESTRING,若是,直接执行步骤7;若不是,则要素类型为面要素POLYGON,调用alignment函数对面要素进行对齐工作;步骤7:进行图形的重绘工作。优选的,所述的步骤3包括以下子步骤:步骤3.1:遍历图中所有点,将点存储为Point对象,Point对象包含点的x坐标值、y坐标值、记录是否已被遍历的变量flag,被遍历为1,未被遍历为0、记录与该点相连接的线的数组line;步骤3.2:将线i存储为Line对象,Line对象包含两个端点start和end、要素的几何对象geometry、存储交点的intersections数组、记录线段是否已经被打断的flag变量,已打断为1,未被打断为0;步骤3.3:将所有线段存储在存储线的列表lineList数组中,线要素的所有点存储在哈希表HashMap中,由点的x、y坐标值组成哈希表HashMap中的key值;加入新点时,判断哈希表HashMap中是否已有该坐标值的点,若有,则不添加,且将线i的端点记录为已经存在的点对象,若没有,则添加该点。优选的,所述的步骤4包括以下子步骤:步骤4.1:若要素类型为线要素LINESTRING,调用getIntersections函数方法计算线间的交点;步骤4.2:调用recombineLine函数方法进行线要素的打断重组;4.根据权利要求3所述的一种室内停车地图的自动校正方法,所述的步骤4.1中所述的getIntersections函数方法,包括以下子步骤:步骤4.1.1:遍历存储线的列表lineList,从存储线的列表lineList中取出线j,线k,调用intersect函数方法,判断线j和线k是否有交点;步骤4.1.2:若线j和线k有交点,则计算交点a的坐标;步骤4.1.3:判断交点a是否为线j线k交点之一,若不是,则将a点添加到线j线k的交点记录数组intersections中。优选的,所述的步骤4.2中所述的recombineLine函数方法,包括以下子步骤:步骤4.2.1:遍历所有的线,从存储线的列表lineList中取出线g;步骤4.2.2:判断线段g的交点个数。若线段g交点个数为0,则执行步骤4.2.4;若线段g交点个数不为0,则连接线g的起始点start点与第一个交点,组成新的线line;步骤4.2.3:依次连接交点与下一个交点,组成新的线;步骤4.2.4:重复步骤4.2.3,直至交点顺序为倒数第二个交点;步骤4.2.5:连接最后一个交点与终点,组成新的线;步骤4.2.6:记录线g已经被打断;步骤4.2.7:取出下一条待处理的线g+1,重复上述步骤。优选的,所述的步骤5包括以下子步骤:步骤5.1:将要素的所有点添加到存储点的列表pointList中,不添加重复点;步骤5.2:依据点的数量,创建一个邻接矩阵数组;步骤5.3:遍历存储点的列表pointList,根据每个Point对象中记录的连接线数组,搜索相连的点,在邻接矩阵中标识为1;步骤5.4:创建记录点的访问情况的visited数组,和记录点之间关系的getEdges数组,依据visited数组和getEdges数组,递归修正要素中的坐标,如果两点的x或y方向坐标值差值小于阈值,则将这二者值统一为一个值;步骤5.5:要素为面要素POLYGON类型时,遍历两次要素,第二次遍历以面要素的最后一点作为遍历的起点。优选的,所述的步骤6包括以下子步骤:步骤6.1:若要素类型为面要素POLYGON,取出面u的所有点,遍历面u中的所有点,取出点b1;步骤6.2:遍历u+1面,取出点b2;步骤6.3:比较b1、b2点坐标值;步骤6.4:如果点b1、b2间的差值小于阈值0.3,则将b1、b2坐标值统一为一个坐标值。步骤6.5:对所有的面进行队形比对修正。优选的,所述的步骤7包括以下子步骤:步骤7的具体实现包括以下子步骤:步骤7.1:取出图层中的要素;步骤7.2:生成修正后的要素的WKT格式;步骤7.3:调用CreateFromWKt方法,利用步骤7.2中的WKT格式,生成要素的几何元素geometry;步骤7.3:调用SetGeometry方法和SetFeature方法将要素对象的几何元素geometry赋值为图层中的要素,将要素重新赋给图层;步骤7.4:将图层和数据源存盘。本专利技术的有益效果是:本专利技术最大限度地消除点间拓扑关系的影响,实现了在Arcgis绘制室内停车地图中的线元素和面元素的端点和折点坐标纠正,消除了线元素和面元素中边的锯齿情况,并实现了应在同一水平线上线元素和面元素的对齐,提升了在Arcgis内绘制室内停车地图的效率。附图说明图1:本专利技术的流程图;图2:本专利技术实施例的校对成果比对图。具体实施方式为了便于本领域普通技术人本文档来自技高网
...
室内停车地图的自动几何校正方法

【技术保护点】
一种室内停车地图的自动几何校正方法,包括以下步骤:步骤1:加载矢量地图数据;步骤2:判断要素类型是否为线要素LINESTRING,若是,继续执行步骤3;若不是,判断要素类型是否为面要素POLYGON,若是,继续执行步骤3;若不是,直接结束;步骤3:进行坐标的去重工作;步骤4:判断要素类型是否为线要素LINESTRING,若是,进行线段打断并重新组合,继续执行步骤5;若不是,则要素类型为面要素POLYGON,直接继续执行步骤5;步骤5:利用图的深度优先遍历方法校正两种类型的点的坐标值;步骤6:判断要素类型是否为线要素LINESTRING,若是,直接执行步骤7;若不是,则要素类型为面要素POLYGON,调用alignment函数对面要素进行对齐工作;步骤7:进行图形的重绘工作。

【技术特征摘要】
1.一种室内停车地图的自动几何校正方法,包括以下步骤:步骤1:加载矢量地图数据;步骤2:判断要素类型是否为线要素LINESTRING,若是,继续执行步骤3;若不是,判断要素类型是否为面要素POLYGON,若是,继续执行步骤3;若不是,直接结束;步骤3:进行坐标的去重工作;步骤4:判断要素类型是否为线要素LINESTRING,若是,进行线段打断并重新组合,继续执行步骤5;若不是,则要素类型为面要素POLYGON,直接继续执行步骤5;步骤5:利用图的深度优先遍历方法校正两种类型的点的坐标值;步骤6:判断要素类型是否为线要素LINESTRING,若是,直接执行步骤7;若不是,则要素类型为面要素POLYGON,调用alignment函数对面要素进行对齐工作;步骤7:进行图形的重绘工作。2.根据权利要求1所述的一种室内停车地图的自动几何校正方法,所述的步骤3包括以下子步骤:步骤3.1:遍历图中所有点,将点存储为Point对象,Point对象包含点的x坐标值、y坐标值、记录是否已被遍历的变量flag,被遍历为1,未被遍历为0、记录与该点相连接的线的数组line;步骤3.2:将线i存储为Line对象,Line对象包含两个端点start和end、要素的几何对象geometry、存储交点的intersections数组、记录线段是否已经被打断的flag变量,已打断为1,未被打断为0;步骤3.3:将所有线段存储在存储线的列表lineList数组中,线要素的所有点存储在哈希表HashMap中,由点的x、y坐标值组成哈希表HashMap中的key值;加入新点时,判断哈希表HashMap中是否已有该坐标值的点,若有,则不添加,且将线i的端点记录为已经存在的点对象,若没有,则添加该点。3.根据权利要求1所述的一种室内停车地图的自动几何校正方法,所述的步骤4包括以下子步骤:步骤4.1:若要素类型为线要素LINESTRING,调用getIntersections函数方法计算线间的交点;步骤4.2:调用recombineLine函数方法进行线要素的打断重组。4.根据权利要求3所述的一种室内停车地图的自动几何校正方法,所述的步骤4.1中所述的getIntersections函数方法,包括以下子步骤:步骤4.1.1:遍历存储线的列表lineList,从存储线的列表lineList中取出线j,线k,调用intersect函数方法,判断线j和线k是否有交点;步骤4.1.2:若线j和线k有交点,则计算交点a的坐标;步骤4.1.3:判断交点a是否为线j线k交点之一,若不是,则将a点添加到线j线k的交点记录数组inte...

【专利技术属性】
技术研发人员:呙维王绪滢饶菁朱欣焰李灿
申请(专利权)人:武汉联图时空信息科技有限公司
类型:发明
国别省市:湖北,42

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

1