ArcGIS Pro 简明教程(3)数据编辑

by 李远祥

数据编辑是GIS中最常用的功能之一,ArcGIS Pro在GIS数据编辑上使用习惯有一定的改变,因此,本章可以重点看看一些编辑工具的使用和使用技巧。

创建数据

GIS数据编辑经常需要创建新的geodatabase或者featureclass和shapefile数据。以往在ArcMap中,只要连接了文件夹,都可以随心所欲的在文件夹右键进行新建。ArcGIS Pro则不能这样做了。原因很简单,因为Pro使用的是工程管理的模式进行数据和地图的管理,在新建工程的时候,已经默认创建了对应的工程文件夹、gdb文件、toolbox和sytle。Esri这样做是为了规范好数据的存放,让GIS工具跟着工程走,便于管理。如下图所示

如果使用右键的方式创建,可以看到已经不能创建gdb了,只能是工具箱或者是Python工具箱,如下图

如果选中工程默认创建好的gdb,则可以创建常规的数据格式和结构,但原来的导入功能已经在右键移除了,不能将外部的shapefile和来自其他gdb的featureclass导入进去,如下图所示

如需要导入数据到指定的gdb,可以使用【数据管理工具】--【要素】--【复制要素】去完成该工作。也可以先将数据加载到地图中,选中图层右键导出,指定存放的路径,其调用的工具也是【复制要素】工具。

目前的1.3版本还不支持直接创建shapefile格式数据,但如果必须使用shapefile的话,可以通过现在gdb里面创建featureclass,然后将其导出位shapefile格式。基本上可以看出,在全新的Pro里面,已经默认没有shapefile的位置了,仅剩下将shapefile直接使用或者作为中间格式与其他GIS平台进行交换。

同样,GDB也是不能直接新建,也必须使用工具才能新建。在Pro中,是建议将数据存在工程的GDB中,取消了右键的导入和导出功能,取消了shapefile的创建,也取消了新建gdb功能,对于老用户来说,是一个非常痛苦的事情,毕竟在过去,这类功能是用得非常多的。

在gdb中通过右键新建一个featureclass,可以看到调出来的时地理处理工具,如下图所示

从这些细节可以看出,Esri基本将操作集成到GP工具中,这样的好处在于功能可以与modelbuilder进行集成,后期也可以将其发布到GP服务中。

字段的创建不再在featureclass创建时创建了,而是在创建完之后在featureclass的右键--【设计】中点出对应的设计面板,如下图所示

点开了字段设计后,在功能标签页上会开启【字段】标签页,如下图所示

字段设计好后,必须点击【保存】,这样才可以保存设置,如果设计好后直接关闭【字段】设计的标签,会提示是否保存,如果不保存会导致设计好的字段丢失。这就像追加数据和修改数据一样,必须点击保存才能生效。这跟ArcMap区别还是非常大的。

同样,在【图层】右键【属性表】中也可以添加字段。

编辑已有数据

如果已经创建了数据或是将一些已有的数据加载到Pro中进行编辑,Pro不需要像ArcMap那样调出编辑器工具,而是直接的在【编辑】标签中启动所有的功能,如下图,【编辑】功能下基本上罗列出各种编辑所能用到的工具。例如创建要素,点击之后会根据配置好的地图弹出相应的编辑模板,编辑模板的好处在于编辑数据的时候所见即得,同时可以固定一些属性值,减少编辑时的录入工作。

编辑模板在Pro中也得到了增强,除了属性模板之外,还新增了工具模板,就是说,可以在编辑时限制某些编辑工具的使用。例如面要素的编辑,在编辑模板中选中一个面要素,然后右键--属性,进入到【模板属性】中,可以看到如下图的模板属性,其中相对ArcMap多出一项【工具】

在这里可以设置这个要素编辑的默认工具和允许使用的工具。与ArcMap编辑不一样的地方是ArcMap在选中编辑要素的模板之后,还需要在下面的【构造工具】中选择使用 不同的工具去编辑;而Pro则是直接在编辑模板项选中后,罗列出可以用的这些工具,如下图所示

个人认为,这种设计更适合那些长期从事矢量化工作的人群,这样可以减少鼠标移动的幅度。在选中使用的构造工具后,会在地图的下方出现一些辅助的工具,如直线、弧线、追踪编辑等。ArcMap则是需要在编辑工具条上进行点击。编辑时右键同样可以调出这些辅助工具,编辑状态下的右键与ArcMap大同小异,不过对菜单的图标都做了设计,相对与ArcMap的纯文本右键菜单,这个也直观了不少。

ArcGIS Pro编辑的捕捉功能是默认关闭的,如果想要开启捕捉功能,则需要在【编辑】标签的【捕捉】进行开启,如下图所示

在ArcGIS Pro中没有所谓的【高级编辑】工具条,而是全部整合到修改要素工具中。

在ArcGIS Pro中编辑时的拓扑工具基本上也是消失了,如果要做一些面对齐或者共边操作,必须依赖上述的【修改要素】的这些工具。例如,两个面要素在编辑的时候有部分重叠,但最终目的是要依照某一个面为参考,裁剪掉多余的部分,实现另一个面与参考面共边。其实这在ArcMap的拓扑工具可以做到,但Pro中,那就需要在【对齐边】工具中进行操作,操作的方式与ArcMap大同小异,如下图

结果如下

关于共边的编辑,由于没有了拓扑工具条,所以,操作起来有点别扭。在ArcGIS Pro中选择工具是有了变化,在选择中要素之后,默认在【修改要素】面板中使用的是【要素】选择,如果要实现共边编辑,那就需要选中某条边,则自动切换到拓扑编辑状态,然后进行折点编辑。这样就可以编辑两个图形的公共边了。如下图所示。

总结

ArcGIS Pro的编辑总体上比ArcMap变得简单有效,改良了不少的操作。但由于Ribbon方式的限制,导致传统的拓扑菜单缺失,拓扑编辑并不是十分顺畅。作为ArcMap的继任者,Pro估计会在后续的版本进一步改善一些操作方式和建立新的操作习惯。

ArcGIS Pro 简明教程(3)数据编辑的更多相关文章

  1. ArcGIS Pro 简明教程(1)Pro简介

    ArcGIS Pro 简明教程(1)Pro简介 ArcGIS Pro已经发布了相当的一段时间了,截至笔者写这系列文章的时候已经是1.3版本了,已经是相当完善的一个版本,基本上已经完成了原来ArcGIS ...

  2. ArcGIS Pro 简明教程(4)工具和模型构建器

    ArcGIS Pro 简明教程(4)工具和模型构建器 by 李远祥 工具箱中的工具 ArcGIS Pro 在1.3版本基本上已经继承了ArcMap的所有工具,而且会不断加入一些它自身才有的工具,例如适 ...

  3. ArcGIS Pro 简明教程(2)基础操作和简单制图

    ArcGIS Pro 简明教程(2)基础操作和简单制图 By 李远祥 本章主要介绍ArcGIS Pro如何加载数据并进行简单的地图制作,以基本的操作为主. 上一章节介绍过,ArcGIS Pro是可以直 ...

  4. ArcMap和ArcGIS Pro加载百度地图

    前面发布了两篇我用ArcBruTile开发用于ArcMap加载百度地图的插件ArcBruTileBaidu,放在网上后评论和反响还不错,还有两位大学同学通过百度搜索居然搜到我本人!文章和技术介绍也被网 ...

  5. Python 简明教程 --- 3,Python 基础概念

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 控制复杂性是计算机编程的本质. -- Brian Kernighan 了解了如何编写第一个Pytho ...

  6. Python 简明教程 --- 2,第一个Python 程序

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那你肯定是用错方法了. -- Carig Zerouni 当你在自己的电脑上 ...

  7. Python 简明教程 --- 1,搭建Python 环境

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 人生苦短,我用Python. -- 龟叔T恤 Python 是一门解释型语言,所以要想运行Pytho ...

  8. Python 简明教程 --- 18,Python 面向对象

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码能借用就借用. -- Tom Duff 目录 编程可分为面向过程编程和面向对象编程,它们是两种不 ...

  9. Python 简明教程 --- 13,Python 集合

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果代码和注释不一致,那很可能两者都错了. -- Norm Schryer 目录 前几节我们已经介绍 ...

随机推荐

  1. Laravel Cache 使用

    在项目中使用 laravel 的 cache 时,使用下面形式方法: $value = Cache::remember('users', $minutes, function() { return D ...

  2. for/foreach/linq效率测试

    ; Random r = new Random(); List<byte> list = new List<byte>(); Console.WriteLine("开 ...

  3. NSURLRequest POST方式请求服务器示例

    http://lizhuang.iteye.com/blog/1833297 1.  准备阶段 NSString *urlString = [NSString stringWithFormat:@&q ...

  4. LoadLibrary失败的原因(转)

    背影: 今天终于把公司的SDK 动态链接库转为Java 可调用的JNI 格式.DLL的编译环境是VS2010,使用Debug 输出时调用正常,而用Release 输出却调用失败.这可把哥搞惨了,开始以 ...

  5. iOS自定义字体及类目 分类: ios技术 2015-05-15 16:34 195人阅读 评论(0) 收藏

    1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fon ...

  6. Backbone视图渲染React组件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...

  7. 获取linq生成的sql语句

    命名空间:using System.Data.Objects; var query = db.TxtRes.Join(db.LangRes, a => new { id1 = a.ResID, ...

  8. php 实例说明 socket通信机制

    php 实例说明 socket通信机制 张映 发表于 2010-04-24 分类目录: php 一,socket是什么 什么是socket 所谓socket通常也称作"套接字",用 ...

  9. php中字符串长度和截取的函数

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理. 在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函 ...

  10. archlinux初次接触遇到的问题

    arch-chroot /mnt /bin/bash ( 两个地址中间有空格)