通过ArcGIS建立和发布地图缓存切片的流程介绍


翻译自Esri资源中心博客文章Workflows for building and hosting cached map tiles in ArcGIS
ArcGIS Server Development Team于2013年2月6日发布

提高Web GIS应用和移动GIS应用性能的最有效的方法就是将不同比例尺的地图图层预先绘制成图片,保存到缓存目录中,这些图片就是我们常说的切片。每张切片上绘制一小块区域,最后将这些切片组合在一起拼成完整的地图图片。
本文介绍通过ArcGIS创建和使用切片的几种不同的方法,并根据不同的环境提出相应的工作流程。

1.确定切片的部署形式

决定要使用切片后的第一件事就是要确定建立好切片以后要将它部署到哪里。下面是一些常用的场景:

  1. 将切片部署到ArcGIS Server站点上。将切片发布到自己的服务器上,通过地图服务或者影像服务发布出来,客户端设备可以通过调用Web服务的方式访问到切片,访问时客户端需要提供组成地图视图范围的所有切片的行列号。
  2. 将切片部署到ArcGIS Online上。你可以在ArcGIS Online上购买配额,将你的切片部署到云上去。部署的切片可以通过Web服务REST接口的方式方便的进行调用。不过你需要为切片存储每月付费。
  3. 将切片部署到Portal for ArcGIS上。你可以使用Portal for ArcGIS产品使得你的组织内的用户不用直接访问ArcGIS for Server也可以发布切片服务。Portal for ArcGIS无论是界面还是内容管理方面都和ArcGIS Online很相似,只是支持Portal for ArcGIS的ArcGIS Server是你自己指定和配置的。预计在年内Portal for ArcGIS将具备部署切片服务的能力。
  4. 将切片部署到移动端设备。移动应用不能保证和Internet保持连通状态,因此当移动应用不能连接到Internet时就无法读取地图。你可以创建名字叫做切片包(tile package)的特殊文件来解决这个问题。你可以将切片包发送到移动设备上,那么移动应用就可以读取本地切片来显示地图了。


具体的切片部署方式会影响到你创建切片的软硬件和采用的方法。下面为几种场景提供相应的可选方案:

2.将切片部署到ArcGIS Server站点上

如果要将切片部署到ArcGIS for Server上,那么也应该用ArcGIS for Server创建切片。在创建切片过程中,你可以通过配置来完全控制软硬件资源,比如说你也可以选择利用Amazon Web服务分配的虚拟机来作为创建切片能力的补充。
所有的ArcGIS for Server的切片都是通过Server工具箱中的Caching工具集创建的。ArcMap提供的服务编辑窗口是一个可以方便定义和创建切片的界面,其实,它在后台也是通过调用Caching工具集来实现切片创建的。
Caching工具集中的工具与地图服务和影像服务协作,方便你通过地图文档和大量的图片集合创建切片。

3.为ArcGIS Online服务创建切片

如果你决定要将切片部署到ArcGIS Online上,那么你可以在ArcGIS Online云上创建切片,也可以在本地创建切片再上传到ArcGIS Online上。
(1) ArcGIS Online上创建切片
如果你要在ArcGIS Online上创建切片,那么你可以在ArcMap中通过File > Share As >Service向导定义切片方案。但是在ArcGIS Online上创建切片会产生额外的费用,你创建的切片越多,产生的费用也越多。在ArcGIS Online上创建切片的好处就是你不用关心用来完成切片生成工作的硬件。
(2) 通过ArcGIS for Server或ArcGIS for Desktop本地创建切片
如果你想充分利用本地资源,那么你可以在本地创建好切片再上传到ArcGIS Online上。那么你需要将所有的切片打包成tpk切片包文件。你可以上传tpk文件到ArcGISOnline上然后发布切片地图服务。你可以选择使用ArcGIS for Server或ArcGIS for Desktop生成tpk文件。

1)使用ArcGIS for Server创建切片

你可以通过ArcGIS for Server来创建切片地图服务或影像服务。这些工作都是利用上节提到的Caching工具集完成的。当你完成创建切片后,你可以运行Export Tile Cache工具来将切片打包成切片包。这个工具在Data Management工具箱的Tile Cache工具集中。利用ArcGIS for Server来进行切片创建的好处是你可以对自己的计算资源进行合理的规划,并且你可以让创建切片工作异步执行,以便在创建切片的过程中你仍可以使用ArcGIS做其他事情。

2)使用ArcGIS for Desktop创建切片

你也可以通过ArcGIS for Desktop来创建切片。如果可以预计生成的切片文件体积较小,那么最方便的方法是在ArcMap中通过File> Share As > Tile Package来创建。这个命令会读取地图,绘制切片并且将切片文件打包发送到ArcGIS Online上(如果这个命令按钮是不可用的,那么请设置ArcMap选项中的ArcGIS Runtime Tools选中,如下图)。


如果预计生成的切片文件体积较大,那么应该使用Data Management工具箱中的Tile Cache工具集来创建切片。在ArcGIS 10.1中,这些工具可以对包含mosaic数据集或者栅格数据集的单个地图图层创建切片。预计在2013年年底,这些工具将能够对整个地图文档创建切片。在多处理器多核的环境下,地图缓存工具可以有效的提高效率,它也可以通过模型和脚本实现自动执行。比如,你可以按照下面这个顺序执行Cache工具:

  1. 生成切片缓存模式(Tile Cache Tiling Scheme)定义切片网格和图片格式
  2. 通过管理切片缓存(Manage Tile Cache)来生成切片
  3. 导出切片缓存(Export Tile Cache)来创建切片包
  4. 共享切片包(Share Package)来向ArcGIS Online上传切片包,如果你的切片包小于1GB,你也可以使用ArcGIS Online上Add Item按钮来实现该功能。


(3)将你的切片上传到ArcGIS Online作为服务发布

不管你是如何创建的切片并把它们上传到ArcGIS Online上,最后的步骤都是要将切片包发布成服务。当你在ArcGIS Online上浏览切片包中包含的项目细节时,你可以点击“发布(Publish)”按钮将切片包进行解压并发布成服务。你可以使用ArcGIS Online 分享设置(sharing setting)将服务分享给你的目标听众,当服务发布成功后,出于节省存储空间的目的,你可以删除原来的切片包。

4.将你的切片部署到portal上并发布为服务

如果你要将切片部署到Portal for ArcGIS上,那么首先要在portal注册过的ArcGIS Server站点上生成切片,ArcMap提供了一个很方便的界面可以定义和创建切片并发布为地图服务。在Catlog树中的portal连接上点击右键,在弹出菜单中你可以通过caching工具对切片的定义、创建、发布进行全面配置。
另外,你也可以使用Tile Cache工具集或者File> Share As > Tile Package按照上节描述过的流程创建切片包,并将它上传到portal上再发布为服务。当很多用户同时在进行创建切片操作的时候,这种方法可以大大减轻服务器的负载。

5.为移动应用创建切片

对于那些偶尔才能连接网络的移动应用,你必须得考虑为它们创建切片包。你可以按照前文介绍的方法通过ArcGIS for Server或者ArcGIS for Desktop创建切片,但是不用将切片上传到Online或者Portal上了。部署切片需要将切片包和应用同时下载,如果是单独下载,需要保证移动应用可以访问到切片包。
针对不同移动平台的ArcGIS Runtime SDK都包含了ArcGIS Local Tiled Layer对象可以读取切片包。

提供给移动应用使用的切片包应该严格的按照如果不是必须生成切片就不预先生成的原则。这对于所有的切片生成方案都非常重要,但是对于移动应用来说尤其重要,因为移动应用对于应用的大小非常敏感,切片包会对应用大小产生很大的影响。Manage Tile Cache工具提供了对感兴趣的要素类或者地理区域创建切片的功能,这十分有益于减小切片包的体积。




文章来源:http://blog.csdn.net/arcgis_support/article/details/17240091

2 个评论

您好!请问如何动态更新这些瓦片信息呢,做到可以用js动态更新瓦片的切片信息?
朱政

朱政 回复 bitree

栅格切片缓存的更新速度往往比较慢,如果你需要动态更新,可以考虑使用矢量切片。

要回复文章请先登录注册