ArcGIS地图设计性能优化

news/2024/6/27 19:55:04 标签: arcgis, 性能, 地图

制作一幅较高性能地图检查如下方面是否注意到了 ?



1 内容组织:


· 空间参考/Spatial Reference

在ArcMap中配置地图文档,要尽可能将所有数据与数据框使用相同的空间参考,特别是编辑或创建要提供服务的数据的时候。虽然ArcMap可以进行动态投影,但是这样做可以避免动态投影计算所造成的性能损耗。

对于不同空间参考的数据,可以使用工具 Project 进行转换。

· 连接与关联/Join & Relate

我们有时会通过Join表中的字段进行标注或符号化,也可能会通过Relate操作来执行查询等。然而,通过连接和关联访问数据可能会降低性能,需要执行额外的工作来维护连接。

对于需要使用Join过来的字段内容,可以考虑导出数据,获得包含连接字段的新要素类。

· 索引/Index

这里说的索引包含空间索引和属性索引。空间索引在大多数情况下,ArcGIS 都会自动维护。如果遇到没有自动更新的情况,可以手动更新创建;如果数据源允许使用索引,则应为所有查询字段或渲染字段建立索引。

有关创建删除索引,ArcToolbox有个工具箱 Index可以找到需要的工具。

· 数据简化/Data Simplification

如果需要使用小比例尺出图,无需展示非常详细细节,那就可以考虑简化、概化数据。如果将图层简化为具有更少的折点和线段,图层在小比例下将绘制得更快并且差别不大。此外,简化的数据可以提高查询和识别操作的性能

需要的工具在工具箱也可以找到,例如:Simplify Polyline、Simplify Polygon。

· 底图图层/Basemap

使用底图图层以优化绘制性能,底图图层支持本地硬盘缓存。我们可以把不经常更新的数据作为底图图层,例如衬托在业务数据下的数据图层、影像数据图层等。

如何配置地图图层不啰嗦,点这里看帮助

· 隐藏图层或要素

通过设置图层属性中的可见比例尺范围(Scale Range)和定义查询(Query Defination)来避免绘制不必要的图层或者要素。

· 要素缓存/Feature Cache

ArcMap 要素缓存可以将 ArcMap 当前地图显示中的要素临时存储到本地计算机的内存中。由于从本地内存中检索要素是一个非常快的操作,因此使用要素缓存通常可以提高性能。例如:绘制较大或复杂的数据集;标注、编辑和选择要素;为地图上的多个图层检索相同的要素;使用定义查询来绘制要素。

· 栅格数据金字塔/Pyramid

改善和缩短显示大型栅格数据集时间的最好方法是创建金字塔,目的在于提高显示速度及降低 CPU 使用率。ArcMap 使用合适的分辨率等级来快速绘制整个数据集。如果不使用金字塔,则必须从磁盘中读取整个数据集,然后将其重采样为更精细的大小。对于镶嵌数据集需要创建概视图(Overview)。

· 布局视图/Layout

需要打印输出时,查看一下布局视图的数据框的边界。圆角拐角、背景和阴影会降低性能。消除这些影响并将这些属性设置为方形拐角可以提高布局视图中数据框的绘制性能



地图符号">2 地图符号


· 标记符号/Marker Symbol

尽可能使用简单样式标记,避免使用多层符号。

使用图片标记符号来代替晕圈。

尽可能使用简单形状。

将标记符号的大小属性设置为小于 60 磅。

尽可能不使用图片标记符号,特别是数据量较大的时候。当标记符号只有一种颜色时,.emf 文件所提供的性能要好于 .bmp、.png 或 .jpg/.jpeg 文件。但是,当标记符号有两种或更多种颜色时,.png 文件是性能更好的格式。


· 线符号/Line Symbol

如果要减少显示时间,简单线符号是最好的选择;制图线作为最常用的线符号,在使用更多选项时绘制得相对缓慢一些。

使用多图层符号时,请避免将不同的符号类型混合在一起。

谨慎使用偏移或虚线样式,因为它们会增加绘制时间。

宽线和带有整饰的线(例如标记和箭头)绘制起来较慢。


· 面符号/Fill Symbol

对面进行符号化处理时,没有轮廓的简单填充符号将绘制得最快。

需要在面周围加上轮廓时,应尽量选择简单线符号,其他的线类型(例如制图线、标记线和混列线)会显著增加绘制时间。

与其他符号相同,使用尽可能少的图层来构成填充符号。

特别是带有掩膜图层的点密度填充符号绘制起来更慢,因此应尽量避免使用这种填充符号。

使用线填充符号时,无论是填充还是轮廓,尽量使用简单线。

当图片填充符号只有一种颜色时,.emf 文件所提供的性能要好于 .bmp、.png, 或.jpg/.jpeg 文件。但是,当标记符号有两种或更多种颜色时,.png 文件是性能更好的格式。



地图文本">3 地图文本


· 通用

文本符号与其他类型的符号一样,ArcMap 需要做出的处理决策越少,地图的绘制速度就越快。一般来说,使用注记代替标注可以提高性能

尽可能地减小文本的大小。非常大的文本符号(例如那些大于 60 磅的文本符号)会增加绘制时间。

符号越复杂,绘制速度越慢。因此,应尽可能少使用文本效果(例如,注释、牵引线、偏移、晕圈、背景和填充方式)。

在文本周围使用阴影,不使用晕圈或掩膜。


· 标注

尽可能简化 SQL 查询和标注放置要求。如果标注文本存储在图层属性表中的单个字段中,绘制标注将非常快。

标注表达式会减慢绘制速度。尽可能避免在绘制时使用标注表达式脚本进行条件判断,或格式化标注字符串,或将多个字段值串连到一个标注字符串中。

尽量为 SQL 查询中的字段建立索引。

谨慎使用标注和要素冲突权重。

直线型标注的绘制速度要快于曲线型标注。

设置标注的显示比例尺范围。地图被缩小时,需要绘制更多的标注,而这需要时间。检查某些标注在较小的比例下是否需要绘制。

“Maplex 标注引擎”拥有比“标准标注引擎”更多的标注放置选项。高级放置决策可能会影响性能


· 注记

使用 ArcMap 创建注记时,可以存储在地图文档的注记组中,或存储在Geodatabase的注记要素类中。

一般情况下,应该将注记存储在地理数据库中,因为相比地图文档注记,ArcMap 可以更快地访问和显示地理数据库注记。这是推荐的方式。

如果要创建一张地图并且注记文本只应用到当前地图上,那么可以将文本存储到地图文档的一个或多个注记组中。这种情况很少。如果删除了地图,则该注记也被删除,因为其存储在地图文档中。另外,每个添加到注记组的注记都会增大地图文档文件 (.mxd) 的大小。


http://www.niftyadmin.cn/n/491393.html

相关文章

话说C# 6.0之后

最想看到的:1. 加入脚本语言支持,可以解释运行,作为程序的二次开发语言(类似于vba,python)。2. 可以自定义运算符,为了安全起见,自定义运算符应该特别予以说明(类似于数学…

中国就业市场当前仍呈整体向好、结构不断优化态势

(经济观察)中国就业迎“寒冬”? 中新社北京1月13日电 (王庆凯)近期,伴随部分互联网公司被曝“裁员”,有关中国就业市场迎来“寒冬”的说法引起热议。不可否认,2018年,受经济下行压力加大和复杂国际形势等因素影响&…

人脸识别 -Do We Really Need to Collect Millions of Faces for Effective Face Recognition?

ECCV 2016 Do We Really Need to Collect Millions of Faces for Effective Face Recognition? http://www.openu.ac.il/home/hassner/projects/augmented_faces/ Code, trained CNN models and data is coming! 本文针对人脸训练中需要大量数据问题&#xff0c…

Python列表常用操作

Python的列表非常好用,一些常用的操作写在这里。 在Python中创建一个列表时,解释器会在内存中创建一个类似数组(但不是数组)的数据结构来存储数据。列表中的编号从 0 开始,然后是1,依此类推。 print() 显示…

【译】Go和WebAssembly:在浏览器中运行Go程序

在过去很长一段时间里,Javascript是Web开发人员中的通用语言。如果你想写一个稳定成熟的 Web 应用程序,用javascript几乎是唯一的方法。 WebAssembly(也称为wasm)将很快改变这种情况。使用WebAssembly可以用任何语言编写Web应用程…

发布和安装python自定义模块

这一篇说下如何发布和安装python自定义模块,版本:Python 2.7 。 1.创建setup.py 现在如果已经写好一个python文件,为了尽量简明,创建一个新的文件夹,把自己py文件放进去。接着在这个文件夹中创建一个名为 setup.py 的…

P4769 [NOI2018]冒泡排序(dp)

传送门 日常膜拜shadowice巨巨的题解 //minamoto #include<bits/stdc.h> #define R register #define ll long long #define fp(i,a,b) for(R int ia,Ib1;i<I;i) #define fd(i,a,b) for(R int ia,Ib-1;i>I;--i) #define go(u) for(int ihead[u],ve[i].v;i;ie[i].nx…

上传代码到PyPI

我们可以把自己的代码&#xff0c;尤其是期待分享的得意代码&#xff0c;上传分享到第三方Python模块的“集中营” —— PyPI&#xff0c;如果没有账号&#xff0c;可以注册个先。 1 准备发布 像在本地发布安装一样&#xff0c;先新建一个文件夹&#xff0c;然后将自己的py文件…