技术领域
本发明涉及地图制图与地理信息处理领域,具体涉及一种使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法。
背景技术
GIS平台是处理与空间地理分布相关的数据的一类软件,SuperMap是其中一款由北京超图软件股份有限公司开发的国产、主流的GIS软件。CorelDraw是一款通用的基于向量绘图软件,图形处理、排版等功能强大,常被用来做地图出版使用。如今的地图制图与出版领域,将GIS数据转换到CorelDraw进行辅助制图已是一套成熟的技术体系。
除了外部引入的GIS数据,在专题地图的制作中,绘图人员还常要在CorelDraw中手动标绘一些专题数据。因此,地图生产单位不得不维护两套基础地理信息数据。为了能够统一到GIS平台中管理,需要将这部分手动标绘的要素数据从CorelDraw地图中转换到GIS平台。
由于地图生产长期以来的客观需要,GIS到CorelDraw的数据转换已有许多成熟方式。而随着“数字城市”建设的普及,兴起的城市基础地理信息数据统一管理是近年涌现的新需求,CorelDraw地图数据到GIS平台的逆转换过程的研究还相对较少。
两类平台间的数据转换主要有三种方式:①采用软件平台自带的数据转换功能实现,如ArcGIS原生支持*.dwg格式数据的导入,或利用平台提供的选择性粘贴功能进行数据传递;②采用数据处理软件实现,如ArcGIS软件强大的工具箱能够支持不同数据格式间的相互转换,*.dwg数据即可借助ArcGIS转换到*.kml格式;③采用编程的方法实现,直接将待共享数据处理为目标平台支持的数据格,也可自定义中间格式,再解决转换双方对该格式的导入导出支持。
方法①②相对简单,理论上只需要中间处理软件或目标软件的功能支持,做一点导入导出的工作,但由于平台间对数据组织的差异,常会出现属性信息丢失、空间信息不一致等问题,转换后的数据不能满足使用,需要大量的人工再处理。方法③有一定的技术门槛,但其对数据的操作粒度更加精细,可以实现对数据的定制。
发明内容
本发明的目的在于克服CorelDraw地图成果中专题数据再利用的难题,提出一种使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法,实现CorelDraw成果中点状要素数据快速GIS化,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法,包括以下步骤:
S1:指定CorelDraw地图中需要转换的要素的符号图层、注记图层,以及控制点图层;
S2:使用CorelDraw VBA提供的对象模型接口,从地图成果的符号图层中获取专题点状要素的空间数据集,对应专题的注记图层获取属性数据集,从而获取注记形状的最小外接矩形坐标集,从提前添加的控制点图层获取控制点信息;其中,点状要素的空间数据集和注记形状的外接矩形坐标集用于步骤S3的匹配算法,控制点信息用于步骤S4中的坐标转换过程;
S3:使用匹配算法为每个点状要素的几何数据与属性数据建立连接关系,即建立实体的空间数据与属性数据的匹配关系,并对匹配结果进行人工检核;
S4:使用坐标转换中的仿射变换方法完成平面坐标到地理坐标的转换,得到真实可用的专题点状要素GIS成果,导入到SuperMap平台。
进一步的,所述步骤S1中,在指定图层前,需要对CorelDraw地图进行规范处理,为每个要素的符号形状建立群组,以免对同一要素重复提取,符号个数与对应的注记个数保持一致,添加具有已知地理坐标的控制点图层。
进一步的,步骤S3中建立点状要素的几何数据与属性数据的连接问题即转变为寻找距离符号最近的注记,亦抽象为计算点状要素符号的中心点到注记的最小外接矩形面的最短距离;
其中点到面的最短距离是点到组成面的所有边线的最短距离,而计算点到线的最短距离,则是用线段两端的垂线将点线所在平面分为三部分,当点落入相应区域时,则代入对应的距离公式,最终简化到计算点与点的距离比较;
当要素的坐标点P(x’,y’)落在注记的外接矩形面ABCD内部或边界上时,最短距离为0,即认为该注记与符号完全匹配;落在矩形的长宽延长区域,只需要对相应轴向的坐标进行减法运算;落在角点的延伸区域时,计算点P到对应角点的空间距离即为最短距离;
循环计算空间数据集中每个空间点位与注记集中所有外接矩形面的距离,计算出离该点最近的面,即认为该点要素的符号与该面代表的注记属性匹配。
进一步的,所述步骤S4中,仿射变换的变换公式为:
其中,a
在数据提取时已经为每类要素的空间数据集统一添加了四个控制点,坐标转换的思路是首先将四个控制点的坐标及理论值分别代入变换公式,计算出变换系数;之后遍历空间数据集,将每个要素的相对坐标代入公式进行变换,得到真实地理坐标。
与现有技术相比,本发明的有益效果是:
1、本使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法填补了点状要素从CorelDraw地图中直接转换到SuperMap平台的技术空白。
2、本使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法,自动化快速高效地进行数据转换,提高了CorelDraw地图中要素数据的利用率,使更多的人得以更充分地使用已有数据资源,减少资料收集、数据采集等重复劳动和相应成本。
附图说明
图1为本发明的数据转换流程图。
图2为本发明的程序执行时,指定点状要素图层和控制点图层的图形交互界面。
图3为匹配算法执行后,人工对匹配结果进行检核的图形交互界面。
图4为本发明提出的匹配算法中,点面距离算法优化示意图。
图5为本发明提出的匹配算法中部分VBA代码实现。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对目前的现状,国内对CorelDraw地图与GIS平台之间数据转换的研究和技术方法提出较多,但很多都是从GIS数据无损转换到CorelDraw地图的角度进行研究。而本方案则提出了从CorelDraw地图到GIS平台的逆转换方法,只要对CorelDraw地图的要素图层进行一定的规范处理,即可将点状要素数据转换到SuperMap平台,实现数据的共享。
请参阅图1,本发明实施例中:提供一种使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法,包括以下步骤:
S1:指定CorelDraw地图中需要转换的要素的符号图层、注记图层,以及控制点图层;
S2:使用CorelDraw VBA提供的对象模型接口,从地图成果的符号图层中获取专题点状要素的空间数据集,对应专题的注记图层获取属性数据集(同时获取注记形状的外接矩形坐标集),从提前添加的控制点图层获取控制点信息;其中,点状要素的空间数据集和注记形状的外接矩形坐标集用于步骤S3的匹配算法,控制点信息用于步骤S4中的坐标转换过程。
S3:使用匹配算法为每个要素的几何数据与属性数据建立连接关系,并对匹配结果进行人工检核;
S4:使用坐标转换中的仿射变换方法完成平面坐标到地理坐标的转换,得到真实可用的专题点状要素GIS成果,导入到SuperMap平台。
优选的,所述步骤S1中,在指定图层前,需要对CorelDraw地图进行规范处理,应当为每个要素的符号形状建立群组,以免对同一要素重复提取。符号个数与对应的注记个数应保持一致。添加具有已知地理坐标的控制点图层。
优选的,所述步骤S3中提到的符号与注记匹配算法,是基于CorelDraw地图的生产特点提出的。
通常为了建立实体的空间数据与属性数据的连接关系,需要实体的空间数据和属性数据之间存在某种公共标识符。而在CorelDraw的数据组织中,要素的符号和注记分属各自独立的个体,它们只在视觉上邻近,数据结构上不存在任何关系。
深入研究地图制图的过程,为了表意明确,地图注记作为对地图符号的补充说明,在配置要素注记时通常需要接近并明确指示被注记的对象,具有“所属关系原则”、“避让原则”、“习惯原则”。在注记对象的右方不压盖重要物体(尤其是同色目标)的位置配置注记,当右边没有合适位置时,也可放置在上方、下方、左方。
根据以上制图原则,专题点状要素的符号和注记为了保证视觉上的邻近,这种邻近表现在CorelDraw平面坐标系的空间上也一定是邻近的。从技术角度,只要找到距离要素符号最近的该类注记,即可基本认定两者是对同一要素实体的描述。因此,建立点状要素的几何数据与属性数据的连接问题即转变为寻找距离符号最近的注记,亦可抽象为计算点(符号的中心点)到面(注记的最小外接矩形面)的最短距离。
关于空间距离的计算方式为,点到面的最短距离是点到组成面的所有边线的最短距离;而计算点到线的最短距离,则是用线段两端的垂线将点线所在平面分为三部分,当点落入相应区域时,则代入对应的距离公式,最终简化到计算点与点的距离比较。
本发明中点面对象具有一定的特殊性:注记矩形面的边界总是与横纵坐标轴平行。基于这个特点对经典空间距离算法进行优化。根据矩形面四个角点的横纵坐标值,将其所在空间分为三类区域,如图4所示。
当要素的坐标点P(x’,y’)落在注记的外接矩形面ABCD内部或边界上时,最短距离为0,即认为该注记与符号完全匹配;落在矩形的长宽延长区域,只需要对相应轴向的坐标进行减法运算;落在角点的延伸区域时,计算点P到对应角点的空间距离即为最短距离。算法的VBA代码实现如图5所示。
循环计算空间数据集中每个空间点位与注记集中所有外接矩形面的距离,计算出离该点最近的面,即认为该点要素的符号与该面代表的注记属性匹配。该优化算法能够排除大部分平方运算,在完成匹配目标的同时,降低算法的时间复杂度与空间复杂度,提高匹配效率。
在匹配之后的人工检核过程,是为了检查和纠正可能出现的匹配误差。
优选的,所述步骤S4,是对权利要求4中匹配和检核之后得到的具有相对坐标和属性的中间数据进行处理,得到具有真实地理坐标的GIS数据,并最终导入SuperMap平台进行应用。从CorelDraw平台获取的要素坐标是笛卡尔直角坐标系,表示空间实体在CorelDraw绘图空间中的相对位置。为将其并入GIS平台统一管理,与已有的专题数据保持一致的坐标系统,需要进行坐标转换。由于本发明所在场景为电子地图,不存在图纸变形等问题,只需考虑x、y方向上的变形,因此选用仿射变换模型进行坐标系统的转换。
仿射变换的特性是直线变换后仍为直线,平行线变换后仍为平行线,只是不同方向上的长度比发生变化。对于仿射变换,只需知道不在同一直线上的3对控制点坐标及其理论值,即可求得待定系数。为提高变换精度,在实际使用中可以使用4个以上的点进行纠正,利用最小二乘法处理。其变换公式为:
其中,a
在数据提取时已经为每类要素的空间数据集统一添加了四个控制点,坐标转换的思路是首先将四个控制点的坐标及理论值分别代入变换公式,计算出变换系数。之后遍历空间数据集,将每个要素的相对坐标代入公式进行变换,得到真实地理坐标。
综上所述:本发明提供的一种使用VBA将CorelDraw地图中点状要素转换到SuperMap的方法,针对CorelDraw地图中点状要素的共享问题,本发明主要解决CorelDraw地图中点状要素的坐标与注记属性匹配问题,在获取到相对坐标的中间数据基础上,借助控制图层和仿射变换方法,实现点状要素数据从CorelDraw向SuperMap的转换,提高了数据利用率,减少资料收集、数据采集等重复劳动和相应成本。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
机译: 一种使用相应图像检测在医学诊断中分组的簇的结构变化的方法,特别是用于乳腺X线摄影中点状微小石灰沉积物的识别
机译: 地图要素布置装置及地图要素布置方法
机译: 可以将两种模式的磁通量分布(平衡模式/不平衡模式)从一种切换到另一种的磁控溅射装置,以及一种使用该装置由无机成膜材料形成膜的成膜方法,以及一种双模式磁控溅射装置及成膜方法,使用该装置由无机成膜材料在低温下成膜