基于ArcGIS的测绘地图瓦片数据切割方法
查燕萍
(江西省地质局地理信息工程大队,江西 南昌 330001 )
[摘 要]本研究基于ArcGIS的测绘地图瓦片数据的切割方法,提升网络环境下测绘地图的浏览速度。利用ArcGIS 软件,通过测绘地图设计、确定测绘地图缓存的比例尺、发布测绘地图任务以及测绘地图切片的过程生成测绘地图的瓦片。在ArcGIS软件的服务器端,设置一个瓦片定时更新的执行任务,定时自动更新测绘地图瓦片。依据瓦片的地面分辨率以及显示比例尺,对测绘地图瓦片数据分级。依据测绘地图瓦片数据分级结果,利用图片切割编码方法对测绘地图进行瓦片数据切割。实验结果表明,本文方法利用ArcGIS 软件,有效切割了测绘地图瓦片数据,提升了测绘地图浏览效率与比例尺切换速度。
[关键词]ArcGIS;测绘地图;瓦片数据;切割方法;地面分辨率;显示比例尺
0 引言
ArcGIS 是基于WebGIS 的地图服务软件,该软件设置ArcObject作为核心组件库,为用户提供工业标准等级的服务。ArcGIS 软件具有为用户提供地图服务的功能,同时具有地图空间分析能力[1],以及灵活的地图可编辑性。ArcGIS 软件已经广泛应用于地图服务发布与开发平台中。测绘地图瓦片数据是ArcGIS 软件中的重要数据。ArcGIS 软件中,通常需要访问与处理大规模空间地理数据,用户访问地理信息系统(geographic information system,GIS)平台时,平台响应时间较长[2]。GIS 平台的数据处理能力与数据传输速度,受ArcGIS软件的数据处理能力影响。为了提升GIS 平台对测绘地图数据的处理性能,提出了瓦片电子地图技术。瓦片电子地图技术依据固定规则[3-5],将瓦片电子地图切割为固定尺寸的较小的图片数据,存储在GIS 平台的服务器上。用户利用客户终端,通过在线访问方式访问测绘地图数据时,GIS 平台服务器为用户提供地图浏览时位置坐标对应的瓦片数据[6],利用客户端的显示界面,展示用户所需的地图数据。通过测绘地图瓦片数据切割,降低GIS平台服务器的负载量,提升用户浏览测绘地图时的反应速度。
互联网地图产业快速发展,通信带宽固定时,如何利用有限的带宽,快速为用户展示电子地图[7],是GIS 平台需要解决的核心问题。以往通常通过地图缓存技术,解决地图展示响应速度过慢的问题。依据固定规则,将地图划分为小图片数据,存储在GIS平台服务器中,利用服务器为客户端拼接为地图[8]。通过地图瓦片形式,降低GIS 平台服务器的运算负担,缩短用户调取测绘地图时的等待时间,为用户提供高质量的地图服务体验。
近年来,已有众多研究学者针对地图瓦片数据切割方法进行研究。刘鹏程等人结合数据预处理与地图实时绘制方法[9],提取地图中不同类型的辅助绘图信息,将所提取的绘图辅助信息设置为客户端的绘图参数,对地图瓦片数据内的符号单元初始位置进行调整。该方法可以在大比例尺地图中实现瓦片数据的有效切割。胡毅荣等人对遥感影像中的瓦片数据分割方法进行研究[10],该方法设置GeoTIFF 作为瓦片数据组织形式,采用分布式协同预取策略,构建栅格瓦片处理模型,实时处理地图服务请求中的栅格瓦片数据,快速分析云端的海量遥感数据,实现遥感数据的快速可视化转换。该方法有效分割遥感数据瓦片数据,提升地图的服务能力,适应不同层级尺度时的地图展示需求。文献[11]提出一种基于边缘检测的瓦片数据切割方法,该方法通过识别图像中亮度急剧变化的区域,提取出图像中的边界特征,从而实现瓦片数据切割。以上方法虽然均可以实现瓦片数据切割,但是分割跨网格瓦片地图要素时,容易出现地图中的点、线、面等要素在网格边界位置不连续的情况,影响地图的最终显示性能。针对以上方法在地图瓦片数据切割中存在的问题,本文研究基于ArcGIS的测绘地图瓦片数据切割方法,为提升GIS 平台的测绘地图响应性能,降低GIS 平台的服务器响应负载提供基础。
1 测绘地图瓦片数据的切割方法 1.1 ArcGIS的测绘地图瓦片生成方法
依据ArcGIS 的应用需求,将ArcGIS 地图缓存划分为融合缓存以及多图层缓存两部分。融合缓存是将全部图层融合在一起,生成测绘地图的切片块。多层缓存指将ArcGIS 地图的各图层构建为切片块。多层缓存,支持ArcGIS客户端的显示控制图层开关与地图各要素标注。为了提升ArcGIS 的测绘地图浏览速度,采用融合缓存方法,进行测绘地图的缓存。基于融合缓存方法,对ArcGIS 的测绘地图瓦片进行实时在线局部更新。ArcGIS的测绘地图的瓦片生成过程如下。
1.1.1 测绘地图设计
打开ArcGIS 软件的ArcMap 功能,加载测绘地图的相关数据。利用ArcMap 功能,符号化设计ArcGIS 软件中的地图数据,保存为mxd 格式。设计测绘地图时,测绘地图要素的线型极为重要。地图中字体与标注符号的相关内容,需要满足测绘地图设计的美学要求和制图规范,同时需要考虑测绘地图中不同符号与数据标注之间的相互覆盖以及相互协调关系[12]。测绘地图的各类图层要素,需要设置显示的比例尺,保证测绘地图缩放显示时,地图要素可以满足用户近大远小的视觉需求[13]。伴随测绘地图放大,用户屏幕中显示的测绘地图范围需要逐渐缩小,同时逐渐提高测绘地图的详细程度。
1.1.2 确定测绘地图的缓存比例尺
地图缓存是测绘地图缩放过程中,一种重要的显示状态是快照。测绘地图生成的地图缓存中,包含间断的、存在代表性的显示状态。设置无极显示转变为间断显示的过程,即确定测绘地图制作缓存显示比例尺的过程。确定测绘地图缓存内容的比例尺时,需要确定各种比例尺的详细程度[14],在各种比例尺下选取最佳的符号大小,令测绘地图呈现最佳的整体视觉效果。保证测绘地图的相邻比例尺之间,呈现自然的过渡效果。
1.1.3 发布测绘地图
确定测绘地图文档后,利用ArcGIS Server Manager软件,发布测绘地图。
1.1.4 测绘地图切片
当mxd 格式的地图文档成功发布后,打开ArcGIS 软件中的Arc Catalog 功能,搜寻完成发布的地图服务名。返回搜寻结果后,点击右键,从软件中弹出的对话框中,点击Service Properties菜单,从对话框中点击Caching 按钮,确定测绘地图切换的坐标原点、输出大小与格式,以及不同级别缓存的显示比例[15]。全部内容确定后,创建地图缓存。依据测绘地图的缓存级别和各级缓存的显示比例,进行测绘地图的时间视觉设置。地图切片的缓存设置时间较长。
1.2 测绘地图的定时自动更新
测绘地图瓦片的定时自动更新,指在ArcGIS软件的服务器端,设置一个瓦片定时更新的执行任务。设置测绘地图瓦片的自动更新的基础后,在每天的固定时间,运行Python 语言,编写测绘地图瓦片自动更新的脚本程序,完成测绘地图瓦片的自动更新。测绘地图瓦片自动更新的流程如图1所示。
图1 测绘地图瓦片自动更新流程图
依据上面的测绘地图瓦片自动更新流程图,分析测绘地图瓦片自动更新。
1.2.1 构建参数更新文件库
构建ArcGIS 的ESRI 格式文件库,用于存放测绘地图的更新数据与更新区域两种类型的测绘地图信息。采用面状Feature Class 的形式存放测绘地图的更新区域,输入与该测绘地图区域配套的更新参数。测绘地图文件库内的参数更新内容如表1所示。
表1 参数更新内容
1.2.2 控制 ArcGIS的服务状态
ArcGIS软件中,为用户提供的Python API内,并未设置ArcGIS服务状态控制的类或函数,因此在自动更新测绘地图瓦片数据时,需要采用人工方式进行测绘地图服务的启动与终止操作[16]。利用ArcGIS 服务器提供的开发包,为服务对象管理器编写控制测绘地图服务状态的命令程序。
1.2.3 更新地图瓦片数据
1)读取测绘地图更新区域的状态信息,确定是否已经处理测绘地图更新区域的状态标记信息。当已经完成更新区域的状态标记信息处理时,无需再次进行更新;否则需要再次进行测绘地图区域的更新操作。
2)读取测绘地图更新区域的相关参数。读取测绘地图更新区域的各项参数,包括服务名称更新内容、测绘地图更新区域、比例尺更新、地图所在图层的数据更新、测绘地图更新数据所在位置等测绘地图更新区域的相关服务名称。
3)数据更新。从ArcGIS 软件中,调用ArcGIS Server 服务状态控制的命令程序,对测绘地图服务与测绘地图更新服务进行终止设置。将待更新的测绘地图数据删除处理;以完成更新的测绘地图数据,代替原有的测绘地图数据。完成测绘地图数据的替换后,启动测绘地图的相关服务以及待更新的测绘地图。
4)地图瓦片数据更新。利用所确定的更新参数,调用ArcGIS 软件中的更新函数,进行测绘地图瓦片数据的更新操作。
5)确定已更新的标记。完成测绘地图瓦片数据的更新后,将不确定是否应处理的更新区域中的内容标记为已处理,避免测绘地图执行自动更新操作时,出现重复更新情况。
1.2.4 制定自动执行脚本服务
在ArcGIS 软件创建测绘地图的更新任务。在测绘地图服务访问为空闲状态时,触发测绘地图自动更新的脚本程序,依据所设置的程序,自动执行测绘地图瓦片的更新任务。
1.3 测绘地图瓦片数据分级
以北纬90°和西经180°进行测绘地图的瓦片数据分块。测绘地图瓦片数据的组织形式如图2所示。
图2 测绘地图瓦片数据的组织形式
对于测绘地图的瓦片电子地图,依据瓦片的地面分辨率以及显示比例尺,进行地图分级。测绘地图的显示比例尺计算公式为[17-18]
式中,
G
D分别表示测绘地图的地面分辨率以及显示比例尺;
Q
S分别表示比例系数以及屏幕分辨率。
测绘地图的地面分辨率的计算公式为
式中,
分别表示地球椭球的长半径以及测绘地图的纬度;l表示比例尺等级。
利用以上过程确定测绘地图的电子地图分级。制作测绘地图的瓦片电子地图时,不同等级的瓦片电子地图应该与相应数据源比例尺对应。确定瓦片电子地图要素时,需要严格依据以下原则[19-20]:
1)确定不同等级的瓦片电子地图后,保证保留服务器内可以容纳与测绘地图显示比例符合的标记总和与可容纳标记符号,同时保证测绘地图数据源的完整性。
2)严格依据测绘地图划分的级别进行瓦片要素设置。低等级的要素数量需要多于高等级瓦片电子地图中的数据要素的数量。电子地图显示比例尺大小降低时,通过显示界面可以为用户展示更多的测绘地图细节。
3)为了保证临近等级的电子测绘地图负载量,避免出现过大波动,跨级调用瓦片电子地图相关数据时,应该采用平滑过渡方式。
1.4 测绘地图瓦片数据的切割方法
依据测绘地图瓦片数据分级结果,利用图片切割编码方法对测绘地图进行瓦片数据切割。测绘地图瓦片数据切割的流程如图3所示。
图3 测绘地图瓦片数据切割流程图
通过图3的测绘地图瓦片数据切割方法可以看出,测绘地图瓦片数据切割主要包括以下流程。
1)读取ArcGIS 软件中存放于ArcMap 中的mxd 格式的测绘地图配图文档,设置测绘地图瓦片数据切割的各项参数,确定固定范围内、不同比例尺下,瓦片地图各点的坐标范围。选取设置于ArcGIS Engine 的Iexport接口,导出固定范围内的测绘地图的图片。
2)选取VS 2020 软件中的C#开发工具,运行测绘地图瓦片数据切割程序。利用IEnvelope、Iexport 等接口,生成测绘地图瓦片,依据数据切割的行列数和瓦片切图等级,调整测绘地图显示界面的可视范围。依据可视范围显示结果,导出预定义格式的瓦片图片。依据测绘地图瓦片数据的组织形式,存储相应的瓦片数据,完成测绘地图瓦片数据切割,为用户提供其所需要的电子地图。
2 性能测试与分析
为了验证本文所研究的方法切割测绘地图瓦片数据的有效性,选取网络中的某测绘公司的测绘数据作为研究对象。该测绘地图内共包含测绘数据651.52 GB,为了改善测绘地图在GIS平台的地图展示性能,利用ArcGIS 软件,采用本文方法对该测绘地图进行瓦片数据切割。
采用本文方法对测绘电子地图进行分级处理,结果如表2 所示。通过表2 可以看出,采用本文方法可以实现测绘地图的分级处理,将测绘地图分级处理结果作为瓦片数据切割的依据。
表2 测绘地图分级结果
采用本文方法,利用ArcGIS 软件,对测绘地图的瓦片数据进行切割处理,测绘地图瓦片数据的切割内容如表3 所示。依据表3 的测绘地图瓦片数据切割内容,对测绘地图瓦片数据进行切割,实现海量测绘地图的高效处理,提升GIS平台为用户提供地图服务时的处理效果。
表3 测绘地图瓦片数据切割内容
采用本文方法对海量测绘地图瓦片数据进行切割,并下载切割后的测绘地图。测绘地图瓦片数据切割下载结果如图4所示。
图4 测绘地图瓦片切割下载结果
采用本文方法完成测绘地图瓦片切割处理后,切割后的测绘地图,在用户的客户终端显示结果如图5 所示。实验结果表明,采用本文方法对测绘地图瓦片数据切割后,测绘地图的显示界面更加流畅,画面清晰度更高,能够有效地为用户提供高质量的测绘地图展示结果。
图5 测绘地图显示结果
采用本文方法对测绘地图进行瓦片切割,统计瓦片数据切割、比例尺切换、地图浏览等参数的运行性能,结果如表4所示。通过从表4的测绘地图瓦片切割性能测试结果可以看出,采用本文方法对测绘地区瓦片数据进行切割,提升了GIS平台客户端的地图浏览效率,切割瓦片所需时间较短,可以实现海量测绘地图的高效调度。
表4 测绘地区瓦片切割性能
3 结束语
传统的测绘地图瓦片数切割处理据采用金字塔模型进行,地图瓦片数据切割时间过长,需要大量空间进行数据的存储,影响测绘地图瓦片数据的调度。本文提出了新的瓦片数据切割方法。该方法通过地图瓦片数据的自动更新,简化瓦片数据分割的工作步骤,提升瓦片数据分割的工作效率。所研究的测绘地图瓦片切割技术,解决了GIS平台在客户终端的服务性能受限以及带宽受限制时,容易影响地图浏览效率以及造成平台负担过重的缺陷,简化了地图瓦片数据的运算过程。
引文格式:查燕萍. 基于ArcGIS的测绘地图瓦片数据切割方法[J]. 北京测绘,2024,38(8):1199-1204.
[作者简介]查燕萍(1984—),女,江西景德镇人,大学本科,高级工程师,从事不动产测绘、地理信息系统及测绘相关管理工作。
E-mail:1303004820@qq.com
社群交流 / 原创投稿 / 商务合作
来源:测绘学术资讯