shp文件转dwg并创建文本标注
不得不说,ArcGIS 和 CAD 之间的兼容性非常差,shapefile文件和dwg文件之间互相转换会丢失各种属性,但是很多时候他们之间的转换对我们来说是刚需。通常我们都是通过第三方软件(如FME)来实现带属性的转换,我尝试直接使用ArcGIS将shp文件转换从dwg并添加标注,下文记录整个流程和遇到的坑。
主要流程为:
- shp直接转 dwg
- 设置导出数据的属性
- 添加标注
shp 直接转 dwg
对于普通的 shp 转 dwg ,直接使用Toolbox中的转换工具-转为CAD-要素转CAD
工具即可,工具界面如下:
通常需要设置的参数有:
- 输入要素。需要转换成 dwg 的要素类。可以同时将多个要属类转换至一个 dwg 中。
- 输出类型。设置输出的 dwg 版本,对于CAD2006,可以设置为
DWG_2005
- 输出文件。输出 dwg 文件的路径。
参数设置完成后,直接运行工具。待工具运行完成后,在CAD中打开所导出的 dwg ,可以看到,该 dwg 仅保存了点和线,所有的属性都已丢失。
设置导出数据的属性
多数情况下,我们希望 shp 导出为 dwg 后一些属性能被保留,如高程值、线宽、线型等。对于该需求,我们可以通过为要素添加 CAD 字段的方式实现。
在ToolBox中找到转换工具-转为CAD-添加CAD字段
工具并打开,输入需要处理的要素,点击确定即可。
工具执行完成后,打开要素属性表,可以发现有非常多的字段被添加至属性表中。每个属性都具有不同的含义,如EntLineWt
属性指定线条的粗细,Layer
指定线条所属的图层,等等等等,具体每个属性代表的含义可以查看 ESRI 为 AutoCAD DWG/DXF 格式保留的 CAD 字段
此时,这些属性全部都为默认值,需要自己修改为需要的值,可以开启编辑后手动一个一个修改,也可以使用字段计算器批量赋值。
添加标注
很多时候我们需要对点、线、面进行标注, shp 直接导出为 dwg 会丢失属性,没办法实现。但是可以通过迂回的方法实现。
使用添加CAD字段
工具会在要属类属性表中添加一个名为CadType
的字段,该字段指示输出实体的类型。当点要素的该字段设置为TEXT
,导出 dwg 时会根据TxtValue
字段的值,在点的对应位置创建字符串而非点。通过该种方式,即可实现在 CAD 中添加标注,再对文字和点大小进行调整,成果如下图,打完收工。
本文参考:
shp文件转dwg并创建文本标注的更多相关文章
- shp系列(五)——利用C++进行shp文件的写(创建)
之前介绍了shp文件.dbf文件和shx文件的的读取,接下来将分别介绍它们的创建过程.一般来说,读和写的一一对应的,写出的文件就是为了保存数据供以后读取的.写的文件要符合shapefile的标准.之前 ...
- 百度地图API示例之文本标注
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- 结合C++和GDAL实现shapefile(shp)文件的创建和写入
工具:vs2012+GDAL 2.0 包含头文件: #include "ogrsf_frmts.h" int main() { const char *pszDriverName ...
- ArcGIS 网络分析[1.1] 创建用于网络分析用的线类型shp文件[这个太基础了吧!]
具体的准备,在上一篇就说过了,不再赘述. 阅读本篇前,需要的预备知识是:ArcGIS创建各种矢量数据的方法,了解地理坐标与投影坐标 本篇只创建单一的线数据,至于点数据,以后进行复杂的网络分析时再添加进 ...
- shp系列(七)——利用C++进行Shx文件的写(创建)
之前介绍了Shp文件和Dbf的写(创建),最后来介绍一下Shx文件的写(创建).Shx文件是三者之中最简单的一个,原因有两个:第一是Shx文件的头文件与Shp文件的头文件几乎一样(除了FileLeng ...
- shp系列(六)——利用C++进行Dbf文件的写(创建)
上一篇介绍了shp文件的创建,接下来介绍dbf的创建. 推荐结合读取dbf的博客一起看! 推荐结合读取dbf的博客一起看! 推荐结合读取dbf的博客一起看! 1.Dbf头文件的创建 Dbf头文件的结构 ...
- shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
博客背景和目的 最近在用C++写一个底层的东西,需要读取和创建shp文件.虽然接触shp文件已经几年了,但是对于shp文件内到底包含什么东西一直是一知半解.以前使用shp文件都是利用软件(如ArcGI ...
- 【百度地图API】如何快速创建带有标注的地图?——快速创建地图工具+如何标注商家
原文:[百度地图API]如何快速创建带有标注的地图?--快速创建地图工具+如何标注商家 摘要: 如果你不会程序,如果你不想写代码. 如果你想拥有一张自己的地图,如果你想在该地图上标注出你商店的位置. ...
- 创建文本注记TextElement
1.创建一个字体 /// <summary> /// 字体设置 /// </summary> /// <param name="size">Th ...
随机推荐
- 【漏洞复现】MSF添加ms17-010的exp脚本及攻击复现
原文地址:https://bbs.ichunqiu.com/thread-23115-1-1.html 本来今晚在准备复现最近的CVE-2017-11882,由于本人是小白一枚,不知道这么添加msf的 ...
- 电机AB相编码器测速
控制任务 检测编码器的脉冲并测速 电路设计 图1 直流电机带减速器和编码器 图2 编码器接线定义 编码器接线定义如下 M1:电机电源接口,绿色的 GND:编码器电源负极输入口,橙色的 C1:编码器A ...
- 浅谈Prufer序列
\(\text{Prufer}\)序列,是树与序列的一种双射. 构建过程: 每次找到一个编号最小的叶子节点\(Leaf\),将它删掉,并将它所连接的点的度数\(-1\),且加入\(\text{Pruf ...
- selenium3+python3自动化环境搭建
(我也是小白,刚开始接触自动化,以下内容是我自己在配置环境的时候遇到的问题及解决方法,是后面才记录的要是有什么遗漏或者问题,欢迎帮忙指出来.)1.1首先下载python下载网址:https://www ...
- Ubuntu18.04下Git安装及使用
Ubuntu 18.04 git安装配置及基本使用 git Ubuntu 准备 对Ubuntu相关资源升级 1. linux资源升级 sudo apt-get update 2. linux软件升级 ...
- Hello World背后的事情
Hello World是不少人学习C++的第一项内容,代码看似简单,很多东西却涉及根本 #include <iostream> using namespace std; int main( ...
- shell-变量输入内置read命令详解
1. shell变量的输入 shell变量除了可以直接赋值或脚本传参外,还可以使用read命令从标准输入得. [语法格式] read [参数] [变量名] [常用参数] -p:指定读取值时的提示符: ...
- Mysql架构与内部模块-第二章
接上文,上文简述到了Mysql中的查询缓存和解析器,今日我们继续. 先来看一段SQL:SELECT * FROM `jianghuadong`; 先假设我们数据库中并没有一张名为jianghuadon ...
- linux centos 03
linux用户权限相关 root用户 相当于qq群的群主 sudo命令 相当于qq群的管理员 普通用户 相当于qq群的 水军 超级用户root的UID是 0 组ID也是 0 普通用户的UID ...
- linux(centos8):用cut显示文本内容的指定列
一,cut命令的用途 从一个文本文件或者文本流中提取文本列 分别用: 字节.字符.字段 作为单位进行提取 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.co ...