公开/公告号CN104391991A
专利类型发明专利
公开/公告日2015-03-04
原文格式PDF
申请/专利权人 重庆市勘测院;
申请/专利号CN201410775561.9
发明设计人 张平;陈翰新;向泽君;周志军;朱清海;刘远凯;陈华刚;周召兵;汪蓓;潘成军;郑持辉;张凤英;王昌翰;刘洪海;杨本廷;冉瑞华;朱伟;刘洋河;廖中林;滕德贵;肖兴国;岳仁宾;郑佳;孙宇;汪剑云;肖先华;张杰;谢文敏;王刚氚;栗龙;张立祥;彭文;代强;张天勤;李彦聪;徐定建;杨勇;吴凡;俞跃;
申请日2014-12-15
分类号G06F17/30;
代理机构重庆市前沿专利事务所(普通合伙);
代理人陈红
地址 400020 重庆市江北区电测村231号
入库时间 2023-12-17 04:19:09
法律状态公告日
法律状态信息
法律状态
2018-06-01
授权
授权
2015-04-01
实质审查的生效 IPC(主分类):G06F17/30 申请日:20141215
实质审查的生效
2015-03-04
公开
公开
技术领域
本发明涉及一种数据转换方法,特别是涉及一种从AutoCAD数据到GIS空 间数据的转换方法。
背景技术
WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空 间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即 WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式 由开放地理空间联盟(OGC)制定。
WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及 多面体。可以通过几何集合的方式来表示不同维度的几何对象。几何物体的坐 标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。
以下为几何WKT字串样例:
POINT(6 10)
LINESTRING(3 4,10 50,20 25)
POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))
MULTIPOINT(3.5 5.6, 4.8 10.5)
MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2)),((6 3,9 2,9 4,6 3)))
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY
Geometry:平面空间数据类型,在SQL Server中作为公共语言运行时(CLR) 数据类型实现。此类型表示欧几里得(平面)坐标系中的数据。SQL Server支 持Geometry空间数据类型的一组方法。这些方法包括开放地理空间信息联盟 (OGC)标准和对该标准的一组Microsoft扩展所定义的Geometry方法。从SQL Server2008版本开始就支持Geometry这一数据类型。WKT文本字符串可直接赋 值给Geometry数据类型。
而AutoCAD强调的是制图要素的符号化表示和绘图功能的丰富和灵活性, AutoCAD数据到GIS数据的转换一直是一个瓶颈,主要表现在以下几个方面:
1、数据转换需要借助第三方工具,不能实现从AutoCAD到GIS空间数据的 及时转换和共享;
2、数据转换时中间数据较多、耗内存,转换后的数据沉余度大;
3、数据转换后丢失了图层、颜色、线型、精度等;
4、数据转换后丢失自定义扩展属性。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种 从AutoCAD数据到GIS空间数据的转换方法。
为了实现本发明的上述目的,本发明提供了一种从AutoCAD数据到GIS空 间数据的转换方法,包括以下步骤:
S1,在AutoCAD软件中打开待处理的图形文档,对图形文档里的所有图形 对象进行ID身份标定;
S2,对所述图形对象进行文本标记;
S3,对所述图形对象的基本属性进行采集;
S4,建立空间数据库转换、存储数据,将步骤S1、S2及S3采集的各图形 对象的ID身份标定值、文本标记字串、基本信息分别对应入库。
在本发明的一种优选实施方式中,所述图形对象包括点对象、直线对象、 多段线对象及其他对象。
在本发明的一种优选实施方式中,所述点对象文本标记的方法为:通过点 对象P的Coordinates属性获取点的X坐标X=P.Coordinates()(0)、Y坐标 Y=P.Coordinates()(1);则P点的文本标记方式为POINT(X Y)。对点坐标进 行标记采集。
在本发明的一种优选实施方式中,所述直线对象文本标记的方法为:通过 直线对象L的StartPoint属性获取直线的起点X坐标Xs=L.StartPoint()(0)、 起点Y坐标Ys=L.StartPoint()(1);直线的终点X坐标Xe=L.EndPoint()(0)、 终点Y坐标Ye=L.EndPoint()(1),则直线L的文本标记方式为LINESTRING (Xs Ys,Xe Ye)。对直线进行标记采集。
在本发明的一种优选实施方式中,所述多段线对象文本标记的方法为:通 过多段线PL的Coordinates属性逐一读取多段线的节点坐标,如下:
X1=PL.Coordinates(0),Y1=PL.Coordinates(1);
X2=PL.Coordinates(2),Y2=PL.Coordinates(3);
……;
Xi=PL.Coordinates(2*(i-1)),Yi=PL.Coordinates(2*(i-1)+1);
……;
Xn=PL.Coordinates(2*(n-1)),Yn=PL.Coordinates(2*(n-1)+1);
其中,X1、X2、……、Xi、……、Xn为依次读取的多段线节点的X坐标, Y1、Y2、……、Yi、……、Yn为依次读取的多段线节点的Y坐标,n为多段线 节点的个数且为正整数,i为依次读取多段线节点的序号且不大于n的正整数;
如果多段线闭合,则多段线PL的标记方式是POLYGON(X1 Y1,X2 Y2,……,Xi Yi,……,Xn Yn);
如果多段线不闭合:则多段线PL的标记方式是LINESTRING(X1 Y1,X2 Y2,……,Xi Yi,……,Xn Yn)。对多段线进行标记采集。
在本发明的一种优选实施方式中,所述其他对象标记方法为:首先调用 AutoCAD内置命令“_divide”对各对象进行曲线分割,即重采样,并设置重采样 的精度,其中采样的精度可以根据“_divide”分割份数来设定,各对象重采样 完成后形成了有序的点队列,将点队列里的点依次相连构建多段线,而后采用 多段线文本标记方式进行对象标记。对非点、非直线及非多段线进行标记采集。
在本发明的一种优选实施方式中,所述其他对象包括圆、圆弧、椭圆、椭 圆弧、样条曲线或者包含有曲线的多段线之一或者组合。
在本发明的一种优选实施方式中,所述基本属性的采集内容包括图层、颜 色、线型、线宽及比例中的一个或多个;对应的利用对象obj的图层obj.layer 方法、颜色obj.Color方法、线型obj.Linetype方法、线宽obj.Lineweight 方法及比例obj.LinetypeScale方法采集图层、颜色、线型、线宽及比例信息。 对图层、颜色、线型、线宽及比例信息进行采集。
在本发明的一种优选实施方式中,所述S4包括以下步骤:
S101,在SQL SERVER数据库中建立空间数据库;
S102,在数据库中分别对AutoCAD的点、线、面对象建表,各表的主键为 S1中的ID身份标定值;
S103,对各基本信息分别建立字段,对文本标记字串建立类型为Geometry 的字段;
S104,批量读取AutoCAD图形文档中图形对象,通过步骤S1、S2及S3逐 一采集各对象的ID身份标定值、文本标记字串、基本信息,分别对应数据库中 的表与字段对应入库。
本发明建立的空间数据库即为GIS可直接识别的空间数据库。成功地实现 了AutoCAD数据向GIS空间数据的转换。
综上所述,由于采用了上述技术方案,本发明的有益效果是:AutoCAD数据 到GIS空间数据实现高效转换;转换过程中无多余数据沉余;中间数据借助SQL Server数据库实施高效管理,并且中间数据同时也是成果数据;数据转换后保 留了图形对象的基本信息和扩展属性;能够根据不同的精度要求控制转换后的 数据量大小;开启了AutoCAD数据向空间地理信息方向的应用前景,建立的空 间数据库可在ArcGIS Server等软件的辅助下实现WMS、WFS等空间信息服务的 实时发布,AutoCAD与GIS数据转换及时,数据共享,扩大了AutoCAD数据的应 用范围。
附图说明
图1是本发明AutoCAD软件中的图形数据示意图;
图2是本发明AutoCAD图形数据转换后在SQL Server数据库中的示意图;
图3是本发明再通过ArcGIS Server软件发布后的AutoCAD图形数据示意 图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自 始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元 件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能 理解为对本发明的限制。
本发明提供了一种从AutoCAD数据到GIS空间数据的转换方法,包括以下 步骤:
S1,在AutoCAD软件中打开待处理的图形文档,对图形文档里的所有图形 对象进行ID身份标定。在本实施方式中,AutoCAD图形对象ID身份标定可借助 全局唯一标识符(GUID,Global ly Unique Identifier)实现,通过.NET平台 下的System.Guid.NewGuid()类随机生成GUID值,通过AutoCAD COM编程接口 函数SetXData将该GUID值存储在图形对象的扩展属性中即实现标定。本发明 所有的编程实现方式均为AutoCAD COM编程,编程语言为VB.NET。
S2,对图形对象进行文本标记;在实施方式中,图形对象包括点对象、直 线对象、多段线对象及其他对象,其他对象包括圆、圆弧、椭圆、椭圆弧、样 条曲线或者包含有曲线的多段线之一或者组合。
本说明书中的文本标记格式为WKT格式。
其中,点对象文本标记通过点对象P的Coordinates属性获取点的X坐标 X=P.Coordinates()(0)、Y坐标Y=P.Coordinates()(1);则P点的文本标 记方式为POINT(X Y)。
直线对象标记通过直线对象L的StartPoint属性获取直线的起点X坐标 Xs=L.StartPoint()(0)、起点Y坐标Ys=L.StartPoint()(1);直线的终点X 坐标Xe=L.EndPoint()(0)、终点Y坐标Ye=L.EndPoint()(1),则直线L 的文本标记方式为LINESTRING(Xs Ys,Xe Ye)。
多段线对象标记通过多段线PL的Coordinates属性逐一读取多段线的节点 坐标,如下:
X1=PL.Coordinates(0),Y1=PL.Coordinates(1);
X2=PL.Coordinates(2),Y2=PL.Coordinates(3);
……;
Xi=PL.Coordinates(2*(i-1)),Yi=PL.Coordinates(2*(i-1)+1);
……;
Xn=PL.Coordinates(2*(n-1)),Yn=PL.Coordinates(2*(n-1)+1);其中, X1、X2、……、Xi、……、Xn为依次读取的多段线节点的X坐标,Y1、Y2、……、 Yi、……、Yn为依次读取的多段线节点的Y坐标,n为多段线节点的个数且为 正整数,i为依次读取多段线节点的序号且不大于n的正整数;如果多段线闭合, 则多段线PL的标记方式是POLYGON(X1 Y1,X2 Y2,……,Xi Yi,……,Xn Yn); 如果多段线不闭合:则多段线PL的标记方式是LINESTRING(X1 Y1,X2 Y2,……,Xi Yi,……,Xn Yn)。
其他对象标记为首先调用AutoCAD内置命令“_divide”对对象进行曲线分 割,即重采样,并设置重采样的精度,使AutoCAD的对象能够根据不同的精度 要求在GIS环境下显示,各对象重采样完成后形成了有序的点队列,将点队列 里的点依次相连构建多段线,而后采用上述的多段线文本标记方式进行对象标 记。
S3,对图形对象的基本属性进行采集;在本实施方式中,基本属性信息的 采集内容包括图层、颜色、线型、线宽及比例中的一个或多个,能够以字段值 的形式挂接在空间数据上。对应地利用对象obj的图层obj.layer方法、颜色 obj.Color方法、线型obj.Linetype方法、线宽obj.Lineweight方法及比例 obj.LinetypeScale方法采集图层、颜色、线型、线宽及比例信息。
S4,建立空间数据库,转换、存储数据。在本实施方式中,包括以下步骤:
S101,在SQL SERVER数据库中建立空间数据库;所用SQL Server数据库 为SQL SERVER 2008R2及以上版本。
S102,在数据库中分别对AutoCAD的点、线、面对象建表,各表的主键为 S1中的ID身份标定值(GUID值);
S103,对各基本信息分别建立字段,对文本标记字串建立类型为Geometry 的字段;
S104,批量读取AutoCAD图形文档中图形对象,通过步骤S1、S2及S3逐 一采集有关信息,特别指出,对象ID身份标定值(GUID值)的获取方式为调用 AutoCAD COM编程接口函数GetXData获得;将各对象的GUID值、文本标记字串、 基本信息分别对应数据库中的表与字段对应入库。
需要说明的是,本发明的图形对象还具有自定义扩展属性,例如对象ID身 份标定值等,在数据转换后保留,以便查看。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特 征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明 书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描 述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中 以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解: 在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、 替换和变型,本发明的范围由权利要求及其等同物限定。
机译: 空间数据转换装置,空间数据转换程序和空间数据转换方法
机译: 空间数据库的转换方法和用户查询转换后的空间数据库的处理方法
机译: 空间数据库的转换方法和用户查询转换后的空间数据库的处理方法