以下是有关地图缓存的常见问题。这些主题按从基础到高级的顺序排列。在很多情况下,这些答案也可在帮助中的其他地方找到;但是,此主题可能比搜索帮助更快地提供具体问题的答案。
常见缓存问题
地图缓存问题
如果已具备高分辨率数据并且想要以 ArcGIS Online/Bing 地图/Google 地图比例以及自有的一组较大或较小比例构建缓存,请执行以下工作流程:
- 在 ArcMap 的服务编辑器窗口中定义缓存时,请使用切片方案下拉列表来选择切片方案文件。
- 浏览至 <ArcGIS for Desktop installation location>\TilingSchemes\ArcGIS_Online_Bing_Maps_Google_Maps.xml。
- 在服务编辑器窗口中,单击高级设置。
- 输入想要添加的比例并单击添加。重复执行这一过程,直到添加完所有需要的比例。
- 随后开始发布服务并构建切片。
现有缓存的替代工作流程是运行“管理地图服务器缓存比例”工具。
可以。如果您拥有多个 ArcGIS Server 站点(如开发站点和生产站点),则可以在站点间共享缓存目录。这样做可以不必将缓存从一个站点复制到另一个站点。还可以从多个站点读取和写入单个缓存目录。
当设置要在站点间能够访问的缓存目录,您需要在网络上共享目录并授予每个站点的 ArcGIS Server 帐户缓存目录的访问权限。该帐户用于读取和将切片写入缓存(如有必要)。要了解有关 ArcGIS Server 帐户的详细信息,请参阅 ArcGIS Server 帐户。
您应该仅授予 ArcGIS Server 帐户必要级别的权限。例如,如果您要与之共享缓存目录的站点仅需要从缓存读取切片,您应该仅授予该帐户读取权限。相反,如果您要从每个站点创建缓存切片,需要授予每个站点的 ArcGIS Server 帐户读取和写入权限。
警告:
如果您要在多个站点的同一缓存目录中创建缓存切片,您需要极其谨慎,因为您的现有缓存可能会被其他站点覆盖。例如,如果您在不同站点上拥有两个具有相同名称的地图服务,当站点 B 上的地图服务的缓存作业意外启动时,可能会覆盖站点 A 上的地图服务的现有缓存。
共享缓存目录后,您需要更新每个站点,以引用共享的网络位置。有关说明,请参阅在 Manager 中编辑服务器目录。
否。缓存切片、切片方案以及文件夹结构仍然保留在磁盘上。如果您想要完全删除缓存,请使用删除地图服务器缓存工具。如果要删除切片但保留缓存文件夹结构和切片方案,请使用管理地图服务器缓存切片工具,并将更新模式设置为 Delete_Tiles。
大比例下,预先创建预期最常用的切片并设置按需创建其他切片通常是一种很好的做法。与此相反,小比例下可能要创建完整缓存,因为小比例需要较少切片并将在客户端最初查看地图时被频繁查看。
可多次运行管理地图服务器缓存切片工具以在地图的某级别构建部分缓存并在其他级别构建完整缓存。
假定存在要在以下比例下缓存的地图:
- 1:128,000
- 1:64,000
- 1:32,000
- 1:16,000
- 1:8,000
- 1:4,000
可运行管理地图服务器缓存切片,然后仅选中 1:128000、1:64000 和 1:32000 复选框。默认情况下,将缓存这些比例的完整范围。
然后可再次运行工具,并仅选中 1:16000、1:8000 和 1:4000 复选框。而且,可选择基于要素类中要素的范围(例如城市或郡县边界)来缓存这些比例级别,而不是缓存地图的全图范围。此操作创建了这三个比例级别下的部分缓存。或者,可选择按需创建这些比例下的其他切片。
如果缓存区域不存在,可按需创建切片或配置 Web 服务器返回“数据不可用”切片。如果平移至地图边或浏览至未完成缓存的区域,“数据不可用”切片也非常有用。在某些情况下,配置服务器返回“数据不可用”切片比不返回任何内容可获得更好的用户体验。
对于基于 REST 的应用程序(如通过 ArcGIS API for JavaScript 构建的应用程序),您可以通过在缓存的根级别放置空的切片(如 missing.png、missing.jpg 或 blank.png)来配置“数据不可用”切片。如果在缓存中找不到切片,则服务器会默认使用此切片。说明如下:
- 创建与切片方案中的切片尺寸和图像格式相同的图像。将其命名为 missing.png 或 missing.jpg。如果需要清晰的空白切片(如用于需要透明度的叠加服务的切片),则使用 blank.png。要下载示例切片,请参阅 Esri 知识库文章 36939。
- 将 missing.png、missing.jpg 或 blank.png 文件保存到地图服务的 _alllayers 文件夹下,例如, opt/arcgis/server/usr/directories/arcgiscache/MyMapService/Layers/_alllayers/missing.png。
服务器会自动处理缺失的切片,方法为使用缓存根级别的特殊缺失或空白切片来替换应得到但缺失的切片。
请求新切片时(按需或使用缓存工具),始终成组创建切片。缓存机制一次不会仅创建一个切片。如果一次仅创建了一个切片,则将会看到许多同名标注,因为服务器将不会意识到相邻切片上的标注。
如果已启用按需缓存,并且平移至未缓存区域,则服务器将绘制一个 4,096 x 4,096 像素区域,然后将其裁剪为切片(若使用抗锯齿功能,该区域为 2,048 x 2,048)。因此,如果切片尺寸为 256 x 256 像素,可预期创建多达 256 个切片。如果地图包含许多图层或复杂符号,将导致客户端等待时间较长。
因此,强烈建议为地图的常用区域预创建切片,仅在较不常用区域使用按需缓存。如果具有复杂的源地图文档,请避免按需构建整个缓存。