ArcGIS中标注转注记方法比较
1、概述
由于切图或者某些电子地图的功能需要,需要将ArcGIS中标注(Label)转换为注记(Annotation),以便于下一步工作的顺利进行。在ArcGIS中,主要有两种方法可以实现将标注转换为注记。以下将以重庆测试情况为例分别进行介绍比较。
本测试用到的服务器为Windows Server2003操作系统,24核CPU,16G内存,硬盘不详,大概十几个T。
测试数据为重庆全市河流(面)数据以及所有POI(点)数据。重庆水系以河流(面)为主,包括长江、嘉陵江在内的两大河流,还有其他众多的小河。因此涉及到的范围还是较广泛的。
2、两种转注记方法
2.1 直接转换
右键点击图层“将标注转换成为注记”。如下图所示。
2.2 使用“分块方案转注记”工具
该工具中有一个参数“面索引图层”,在“分块方案转注记的时候”,就是根据“面索引图层”中的每一个面逐个范围进行标注转换。该面可以通过“地图服务缓存切片方案转换为面”工具生成切片方案中各级比例尺对应的超级切片(superTile)面,也即分块方案转注记的“块”。然后在“参考比例字段(可选)”参数下拉选项中,选择对应的比例尺字段“level_scale”,而不能使用默认的参考比例值,否则如果是线图层标注,会出现注记重复增多的情况。
需要注意的是,“面索引图层”不一定要由“地图服务缓存切片方案转换为面”工具生成,也可以是自定义的面图层,比如通过“创建渔网”工具生成有标注存在范围的面图层。然后在参考比例值中输入对应的比例尺。使用自定义的图层不利于多个比例尺下的标注同时转换。优点是,如果创建的格网面的数量较少,可以减少遍历每一个“块”的时间,加快转换速度。
因此,综合上述两种不同的“面索引图层”生成方法,可取其各自优点,对由“地图服务缓存切片方案转换为面”工具生成的面图层,进行一定的处理,生成自定义的面图层。以重庆为例,根据L8-L18级生成的切片方案面,大概有462458个面,其中L17级有86000多个,将重庆区划叠上可以发现,大部分范围的切片方案面上其实都是空白,没有任何标注和数据的。此时,可以将重庆区划外多有的空白面删除。还是以L17级的面为例,删除空白后,剩余的面仅为17000多个。两个不同的面数量进行测试结果对比可以看后面的表1。为了节省时间,比例尺是2257的时候,使用的是L17级生成的面。
2.3 测试结果
表1:两种标注转注记方法效率对比
图层 |
转换方式 |
比例尺 |
索引图层数量 |
时间(h:m:s) |
注记数量 |
河流(面) |
直接转换 |
1:2257 |
无 |
3h45m |
18200 |
河流(面) |
工具转换 |
1:2257 |
86000 |
2h40m |
略多于下面的数据 |
河流(面) |
工具转换 |
1:2257 |
17000 |
39m |
19190 |
POI(3w) |
工具转换 |
1:2257 |
86000 |
8h49m |
和POI数量一致 |
POI(3w) |
工具转换 |
1:2257 |
17000 |
2h |
和POI数量一致 |
2.4 结果分析
使用直接转换注记的方法,简单、便捷、省事,一般为用户所偏好,但是数据量大(省级范围)、比例尺较大(5000)以上时,对计算机性能要求较高,一般的计算机没法转,程序将直接奔溃,即使计算机性能允许,时间也相对会较长,且注记数量相对原始标注的数量会有所减少。在时间以及计算机条件允许条件下,适用于单个图层注记转换。
使用“分块方案转注记”工具,步骤较多一些,需要掌握一定的技巧,但是效率较高,而且一般的计算机都能实现该过程,转换之后的注记数量相对比直接转换的方式多一些。而且,在使用该工具的过程中:同样范围的注记,索引面的个数越多,转换出来的注记数量也越多(多的并不是很明显),转换所需时间也会多一些。该工具适用于所有级别所有图层同时转换情况。
3、测试过程中问题及解决方案
1)、使用“将标注转换成为注记”时,由于注记标注较多,在转换快结束时,将弹出一个框提示“There are 6885 overflows labels,The system allows a maximum of 5000 overflows label,The over labels will not be created”。
该工具转换的时候,对数量有一定的要求,包括对溢出的数量。默认是5000,对此,可以修改注册表中的overflow数量,来防止此情况发生,注册表具体路径为“HKEY_CURRENT_USER>Software>esri>ArcMap>Settings> MaxNumOverflowLabels”。
2)、在使用“分块方案转注记”的时候,不报任何错误,并且正常的提示,转换成功,所花费时间也比较靠谱,但是转换之后,自动添加进来的注记图层前复选框为灰色,右边有一红色感叹号,如下图所示,,手动添加对应的数据源,却提示:“不支持该数据类型”。将比例尺换缩小,或者转换范围缩放也会出现该现象。因此可以断定与比例尺以及转换数量无关。最后,将地图文档中的测试数据导入到一个新建的空数据库中,重新指定新库中的数据源后,注记才真正转换成功了。经分析,原因可能是原来的数据库中,之前就已经有转换好的多个注记图层,导致无法再写入相关图层的注记了。
ArcGIS中标注转注记方法比较的更多相关文章
- 如何在ArcGIS中恢复注记文字
文字标注是地图上一种特殊的视觉元素,可通过文字表达图形符号难以说明的地图内容,它与图形符号结合在一起存在于地图上,是关乎地图构图美的关键因素之一. MapGIS软件下子图对象和注释对象统统保存在点文件 ...
- 解析ArcGis的标注(三)——标注的放置 与 转注记修改
该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. 写着写着发现ArcGis标注的破事儿好多啊 ...
- ArcGIS连带文字注记导出为CAD格式
可以使用ArcGIS的"Export To CAD"工具将点.线.面等要素直接导出为CAD格式.如果要连带将ArcGIS中的文字标注导出为CAD格式要稍麻烦一点,下面是一个例子. ...
- 在ArcGIS中如何进行POI点抽稀
对POI点添加权重等级类型信息.例如添加短整形字段Weight,并根据业务逻辑设置不同种类的POI的权重值,如分5类,0代表重要性最低的POI,4代表重要性最高. 在ArcMap的标注管理栏中,设置使 ...
- ArcGIS中添加进自定义的ttf字符标记符号
原文:ArcGIS中添加进自定义的ttf字符标记符号 ArcGIS系统中的样式可能不能满足实际生产需要,为了实现快速制图,可自定义一些样式,以便重复利用. 1. 制作的符号库 使用 FontCre ...
- ArcGIS中的标注和注记
在ArcMap中可以使用标注和注记来识别要素,选择标注或注记取决于你需要如何控制文本显示以及在ArcMap中如何存储文本. 1.标注只是临时显示相关数据或字段 2.标注用于长时间保存数据以及显示方式. ...
- ArcGIS中实现指定面积蜂窝(正六边形)方法
本篇博文为博主(whgiser)原创,转载请注明. 空间聚集研究中,地理尺度大多数都是基于格网构建的,只需fishnet下就行了.也常有使用社区.交通小区(TZ)作为研究单元的.直到发现蜂窝网络做出的 ...
- 介绍ArcGIS中各种数据的打开方法——mxd(地图文档)
1.加载地图文档 在ArcGIS中,以mxd作为扩展名的文件叫地图文档. 地图文档中只是包含图层的引用,即存储当前地图的图层路径.符号.状态.修饰等信息,并不存储真实的数据层. ArcGIS Map中 ...
- ArcGIS中文件共享锁定数据溢出 这个方法不行,建议用gdb,不要用mdb
ArcGIS中文件共享锁定数据溢出 (2011-11-24 15:52:41) 转载▼ 标签: 杂谈 分类: GIS 文件共享锁定数溢出.(Error 3052)1. Access数据库,同时操作大量 ...
随机推荐
- 如何建立DB2分区数据库?(转)
欢迎和大家交流技术相关问题:邮箱: jiangxinnju@163.com博客园地址: http://www.cnblogs.com/jiangxinnjuGitHub地址: https://gith ...
- tomcat 连接器优化
在$CATALINA_HOME/conf/server.xml配置文件中的Connetctor节点,和连接数相关的参数配置和优化. maxThreads Tomcat使用线程来处理接收的每个请求.这个 ...
- Storm完整例子
import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import ...
- AndroidStudio 使用AIDL
http://blog.csdn.net/ducklikejava/article/details/51559244 Android Studio中写的一个AIDL的小DEMO. 步骤很繁琐,本来不准 ...
- maven常见指令和插件
总结自:https://www.cnblogs.com/ysocean/p/7416307.html#_label1及 https://blog.csdn.net/zhaojianting/artic ...
- php下获取http状态的实现代码
在项目开发中,有时我们需要知道远程的URL地址是否能访问正常,判断其正常与否后进行下一步的操作,那么在PHP中如何获取远程HTTP的状态呢? 文件preg.php header("HTTP/ ...
- 20145314郑凯杰 《Java程序设计》第7周学习总结
20145314郑凯杰 <Java程序设计>第7周学习总结 教材学习内容总结 首先放上代码托管图片和本地代码图片: 插图4: 插图5: 插图6: 第十三章 时间与日期 13.1 认识时间与 ...
- selenium webdriver模拟鼠标键盘
在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...
- 如何确保C#的应用程序只被打开一次
http://stackoverflow.com/questions/184084/how-to-force-c-sharp-net-app-to-run-only-one-instance-in-w ...
- 解题报告:hdu 1276 士兵队列训练问题 - 简单题
Problem Description 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行 ...