问题描述:
CAD数据(*.dwg&*.dxf)导入MapGIS数据库过程中,对于数据中的块需要注意其处理方式:
1、在某些制图过程中,会使用CAD块作为区域填充,如下图为封闭线与小草状的CAD块表示的草地区域,如果直接导入会将填充物一起识别为线进行转换,这样转换结果会多出很多不需要的线;
2、CAD中的块有时也会作为点位的图标用于表示地图类别,如下图两个块表示排水井,在默认的转换设置中,会丢失这两个块;
解决思路:
造成这样的结果原因在于对CAD块的处理方式,MapGIS默认情况下是将CAD块打散,将构成块的每一部分都视为要素进行转换,那么为了避免这种情况发生,在Desktop中可以通过选择高级设置中的将块作为点要素转换,而在二次开发过程中可以修改转换过程中的转换参数实现;
实现代码:
//实例化数据转换对象 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();