CAD中DWF(DXF)数据在GIS上的应用

对于CAD中生成DWG数据处理方法的二种方式


一、Acrgis 工具转换

首先安装Acrgis软件(网上有很多安装教程,这里就不详细说了)

安装以后在Acrgis中加载DWG数据

CAD中DWF(DXF)数据在GIS上的应用

打开后,会发现所有数据都能正常显示,但是数据量太多无法寻找自己需要的数据。

这时候,利用Acrgis中识别功能选中你需要的数据CAD中DWF(DXF)数据在GIS上的应用

在属性表中选中数据,单独导出shp 数据即可得到单独的

CAD中DWF(DXF)数据在GIS上的应用

CAD中DWF(DXF)数据在GIS上的应用

 

导出成shp数据后可通过geoserver发布出来看看对比效果CAD中DWF(DXF)数据在GIS上的应用

 

基本上是一致
到这一步基本上就完成了DWG数据提取的步骤了
PS:由于DWG中的的坐标系不存在,这里需要再Acrgis中自定义坐标,如果还需要匹配
你的其它影像tif坐标,这里需要Acrgis的仿射变换,下期我在讲解。
二、JAVA代码实现
Java 中 有各一个 kabeja库,可以将CAD(DXF)转换输出格式(JPEG,PNG,SVG,TIFF,PDF,XML)
使用非常简单
导入Kabeja 0.4库
CAD中DWF(DXF)数据在GIS上的应用https://download.****.net/download/imaniy/10930243

CAD中DWF(DXF)数据在GIS上的应用
放置resources,更新Maven就可以直接引用了
测试代码
public class CAD2PDF {

public static void main(String[] args) throws FileNotFoundException, ParseException, SAXException, org.xml.sax.SAXException {

//InputStream in = new FileInputStream("C:/Users/Admin/Desktop/svg/draft.dxf");
// Parser dxfParser = DXFParserBuilder.createDefaultParser();
Parser dxfParser = ParserBuilder.createDefaultParser();
dxfParser.parse(new FileInputStream("C:\\Users\\dell\\Desktop\\03-等高线.dxf"), "UTF-8");//需要转换的dxf
DXFDocument doc = dxfParser.getDocument();

SAXGenerator generator = new SVGGenerator();

// generate into outputstream

// 输出SVG
// SAXSerializer out = new SAXXMLSerializer();
// 输出pdf
// org.kabeja.xml.SAXSerialzer out =
// org.kabeja.batik.tools.SAXPDFSerializer();
// 输出tiff
// org.kabeja.xml.SAXSerialzer out =
// org.kabeja.batik.tools.SAXTIFFSerializer();
// 输出png
SAXSerializer out =new SAXTIFFSerializer();
//  SAXPNGSerializer


// 输出jpg
// org.kabeja.xml.SAXSerialzer out =
// org.kabeja.batik.tools.SAXJEPGSerializer();

OutputStream fileo = new FileOutputStream("C:\\Users\\dell\\Desktop\\caidiandimao.tif");//转换所得的文件

// out.setOutputStream(response.getOutputStream()) //write direct to
// ServletResponse
//设置输出分辨率
Map m = new HashMap();
        m.put("dpi","300");
m.put("width","10000");
m.put("height","18000");
out.setProperties(m);
out.setOutput(fileo);


generator.generate(doc, out, new HashMap());


}


}

然后将导出数据,在Acrgis中验证CAD中DWF(DXF)数据在GIS上的应用

数据无误以后可以直接使用,可以发布geoserver发布
 

 

 

从ACD中导出的时间,都会出现坐标系不匹配的问题,下一篇我会在讲解