桌面GIS

【.NET桌面二次开发】数据转换--CAD数据导入NO.004

文章
头像
发布时间:2021-09-17 15:33:19
119671
0
0

问题描述:

CAD数据(*.dwg&*.dxf)导入MapGIS数据库过程中,对于数据中的块需要注意其处理方式:

1、在某些制图过程中,会使用CAD块作为区域填充,如下图为封闭线与小草状的CAD块表示的草地区域,如果直接导入会将填充物一起识别为线进行转换,这样转换结果会多出很多不需要的线;

image.png

2、CAD中的块有时也会作为点位的图标用于表示地图类别,如下图两个块表示排水井,在默认的转换设置中,会丢失这两个块;

企业微信截图_16317739895789.png

解决思路:

造成这样的结果原因在于对CAD块的处理方式,MapGIS默认情况下是将CAD块打散,将构成块的每一部分都视为要素进行转换,那么为了避免这种情况发生,在Desktop中可以通过选择高级设置中的企业微信截图_16317607575095.png将块作为点要素转换,而在二次开发过程中可以修改转换过程中的转换参数实现;

实现代码:

//实例化数据转换对象
DataConvert dataConvert = new DataConvert();
//设置数据源路径
int a1 = dataConvert.OpenSource(@"C:\Users\..\Desktop\*.dwg");
//设置目的数据保存位置
int a2 = dataConvert.OpenDestination("gdbp://MapGisLocal/forTest/ds/CAD导入");
//设置转换参数,块处理策略,true表示将块映射为子图,默认为false
dataConvert.SetOption(ConvertOptionType.OPT_DXF_BLKPROC, true);
//执行数据转换
int result = dataConvert.Convert();


评论区
暂无评论
暂无评论,快来抢占第一个沙发吧~
发布评论