火影推荐程序连载61-shp文件转dwg并创建文本标注

本文介绍如何使用ArcGIS将shp文件转换为dwg并保留属性,包括直接转换、设置导出属性和添加标注的步骤,解决CAD与GIS间转换的属性丢失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不得不说,ArcGIS 和 CAD 之间的兼容性非常差,shapefile文件和dwg文件之间互相转换会丢失各种属性,但是很多时候他们之间的转换对我们来说是刚需。通常我们都是通过第三方软件(如FME)来实现带属性的转换,我尝试直接使用ArcGIS将shp文件转换从dwg并添加标注,下文记录整个流程和遇到的坑。

主要流程为:

  1. shp直接转 dwg
  2. 设置导出数据的属性
  3. 添加标注

shp 直接转 dwg

对于普通的 shp 转 dwg ,直接使用Toolbox中的转换工具-转为CAD-要素转CAD工具即可,工具界面如下:
20201106093647

通常需要设置的参数有:

  1. 输入要素。需要转换成 dwg 的要素类。可以同时将多个要属类转换至一个 dwg 中。
  2. 输出类型。设置输出的 dwg 版本,对于CAD2006,可以设置为 DWG_2005
  3. 输出文件。输出 dwg 文件的路径。

参数设置完成后,直接运行工具。待工具运行完成后,在CAD中打开所导出的 dwg ,可以看到,该 dwg 仅保存了点和线,所有的属性都已丢失。

20201106093722

设置导出数据的属性

多数情况下,我们希望 shp 导出为 dwg 后一些属性能被保留,如高程值、线宽、线型等。对于该需求,我们可以通过为要素添加 CAD 字段的方式实现。

在ToolBox中找到转换工具-转为CAD-添加CAD字段工具并打开,输入需要处理的要素,点击确定即可。

工具执行完成后,打开要素属性表,可以发现有非常多的字段被添加至属性表中。每个属性都具有不同的含义,如EntLineWt属性指定线条的粗细,Layer指定线条所属的图层,等等等等,具体每个属性代表的含义可以查看 ESRI 为 AutoCAD DWG/DXF 格式保留的

  1. ptional<Integer> max www.jintianxuesha.com= list.stream(www.huiyinpp3zc.cn).max((a, b) -> a - b);

  2.  

      

  3.  

      System.out.println(max.get(www.haoranjupt.com)); www.fudayulpt.cn// 6

  4.  

      

  5.  

      //求集合的最小值

  6.  

      

  7.  

      System.out.println(list.stream( www.jubooyule.com ).min((www.baihua178.cn b) -> a-b).get()); // 1

  8.  

      

  9.  

      System.out.println(www.jucaiyle.cn list.stream(www.tengyueylzc.cn).count(www.baihuayllpt.cn));//

  10.  

      

  11.  

      String str =www.qitianylezc.cn"11,22,33,44,55";

  12.  

      

  13.  

      System.out.println(Stream.of(str.split(www.longtenghai2.com",")).mapToInt(www.wujiu5zhuce.cn-> Integer.valueOf(x)).sum());

  14.  

      

  15.  

      System.out.println(Stream.of(str.split("www.lanboylgw.com,")).mapToInt(Integer::valueOf).sum());

  16.  

      

  17.  

      System.out.println(Stream.of(str.split(www.shentuylzc.cn",")).map(x -> Integer.valueOf(x)).mapToInt(x -> x).sum());

  18.  

      

  19.  

      System.out.println(Stream.of(str.split(www.xingyunylpt.com",")).map(Integer::valueOf).mapToInt(x -> x).su

 

此时,这些属性全部都为默认值,需要自己修改为需要的值,可以开启编辑后手动一个一个修改,也可以使用字段计算器批量赋值。

添加标注

很多时候我们需要对点、线、面进行标注, shp 直接导出为 dwg 会丢失属性,没办法实现。但是可以通过迂回的方法实现。

使用添加CAD字段工具会在要属类属性表中添加一个名为CadType的字段,该字段指示输出实体的类型。当点要素的该字段设置为TEXT,导出 dwg 时会根据TxtValue字段的值,在点的对应位置创建字符串而非点。通过该种方式,即可实现在 CAD 中添加标注,再对文字和点大小进行调整,成果如下图,打完收工。

20201106094731

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值