地图缓存更新
创建地图缓存时,您将同时创建地图的快照或图片。若之后对数据进行了编辑或更新,则需要执行以下两个操作让其他人看到更改的内容:
- 对缓存进行更新。
- 已用过此缓存的用户需要删除可能存储在他们计算机上的所有过时的切片。此操作即清除缓存。
更新缓存
更新缓存包括重新创建缓存中的部分或全部切片。您可以使用管理地图服务器缓存切片工具更新缓存。访问此工具的简单方法是打开服务属性 对话框,单击缓存选项卡,然后单击更新切片。打开此工具后,找到更新模式,然后选择重新创建所有切片。
在 Linux/Solaris 中,可以通过命令行创建/更新缓存。
如果只想更新地图某个矩形区域内的切片,则可以更改默认更新范围,默认更新范围是整个服务的范围。
如果您确切知道只有一个数据集或一个地理区域内的要素发生了更改,则可以选中使用要素类更新特定区域选项。通过此选项,工具只会选择重新创建那些覆盖了所提供要素类中的要素的切片。如果您编辑了面数据,此方法十分适用。例如,如果您有一个覆盖美国全图的缓存服务,之后编辑了国家公园边界,则可以选择使用要素类更新特定区域并在其中输入国家公园要素类。而后只会重新创建国家公园范围内的切片。
填充空切片
如果要完成一个未完整创建的缓存或对缓存执行质量检查,可运行管理地图服务器缓存切片并将更新模式设置为重新创建空切片。此设置会检查缓存所在文件夹并创建所有缺失的切片。与在其他更新模式下一样,您可以设置某一矩形范围或要素类作为边界以创建空切片。
下图中,将使用重新创建空切片来创建所有轮廓为蓝色的切片。
删除切片
某些情况下,您可能要删除切片的某些区域甚至移除整个缓存。
- 要删除特定区域的切片,请运行管理地图服务器缓存切片工具并将更新模式设置为删除切片。在执行此工具之前,请将更新范围设置为要删除的区域。此外,您还可以指定某个要素类,以便在空间上指明将从缓存中删除的切片。
- 要删除整个缓存,请打开服务属性 对话框,单击缓存选项卡,然后单击删除缓存。这将运行删除地图服务器缓存工具,移除与缓存相关联的所有切片和文件夹。
要删除所有切片但同时保留文件夹结构和切片方案,请运行管理地图服务器缓存工具并将更新模式设置为删除切片。在执行此工具之前,请确保将更新范围设置为地图的全图范围。
更改缓存中的比例
如果要向缓存切片方案中添加比例或者从中移除比例,请使用管理地图服务器缓存比例工具。通过这个简单工具可选择地图服务并定义所选服务的比例,还可根据需要添加或删除比例。
脚本更新工具
可通过脚本定期自动运行管理地图服务器缓存切片。如果您需要持续更新数据,则此方法十分有用。有关如何自动执行缓存更新的详细信息和示例,请参阅使用地理处理脚本自动执行缓存创建和更新。
清除客户端的本地缓存
显示缓存地图服务时,ArcGIS 客户端会在本地存储切片,以便用户再次导航到某区域时无需重新获取相应切片。即使您已更新了缓存,那些之前使用过您的缓存的用户在其客户端计算机上也可能仍然存储的是您的原始切片。他们需要清除这些缓存才能看到您的缓存更改。
如果您需要频繁地更新缓存,建议禁用允许客户端对切片进行本地缓存的选项。这样,使用缓存的用户将始终看到最新的切片,而不是可能存储在他们计算机上的旧切片。
如果您尚未禁用客户端的本地缓存,使用您的缓存的用户可自行选择是否对切片进行本地缓存。他们可以根据需要,选择持续构建本地缓存、为每个应用程序会话构建新的本地缓存或不构建本地缓存。
将服务器资源用于更新
更新缓存将占用服务器资源,因为在更新期间需要服务器连续绘制地图切片。最灵活的解决方案是在过渡服务器上执行更新,然后将更新的切片复制到生产服务器中。
如果过渡服务器不可用,那么最佳方法是在低流量时段执行更新,如夜间或周末。如果您并不想将全部 CPU 资源专用于执行更新,那么在运行管理地图服务器缓存切片工具时,您可以减少地图服务器实例数。此参数用于设置地图服务实例(ArcSOC.exe 进程)数,当该工具运行时,将允许这些实例创建切片。使用 Windows 任务管理器或 Windows 性能监视器可确保缓存更新期间 CPU 不会被 ArcSOC.exe 进程完全占用。
请注意,减少可用于执行更新的实例数将增加更新所需的时间。如果硬件性能不理想,您只能通过降低缓存可用性来提高缓存更新速度,或者通过降低缓存更新速度来提高缓存可用性。