您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 如何基于谷歌地图的Server缓存发布Image Service服务
如何基于谷歌地图的Server缓存发布ImageService服务第一步:下载地图数据下载安装水经注万能地图下载器,启动时只选择电子.谷歌(这里可以根据自己的需要选择),如下图所示。找到成都后框选下载成都区域,如下图所示。双击新建任务,选择1到19级,如下图所示。第二步:导出ArcGISServer服务下载完成后,询问是否导出,点击选择“是”;然后在列表的任务例表中选择“成都”,再点击“确定”显示“导出图片数据”对话框,如下图所示。在该对话框中选择导出类型为“瓦片:ArcGISServer”;保存路径为“c:\arcgisserver\directories\arcgiscache”;保存类型为“PNG(*.png)”,最后点击“输出”按钮开始导出数据,结果如下图所示。需要说明的是,如果瓦片数量特别多(如100万张以上),在导出时就要选择导出到ArcGIS的缓存目录(如“c:\arcgisserver\directories\arcgiscache”)以方便使用。第三步:导出临时数据导出临时数据的目的在于快速构建一个ImageServer服务,它的用途在后面会详细讲述。在下载器中选择之前下载的任务,然后在“查看下载结果”区域点击“导出拼接图片”工具,如下图所示。这里只需要选择几个较小的级别即可,数据越少越好;另外,需要特别注意的是保存路径一定要修改一下,要确保与之前的路径不同,以避免配置文件被覆盖,如下图所示。导出结果如下图所示。为了便于区别于之前的导出结果,这里我们把“成都_ArcgisServerTiles”文件夹改为“成都_Temp”,如下图所示。第四步:新建ImageServices服务启动ArcCatalog10.2,在“FolderConnections”目录上单击右键并选择“ConnectToFolder...”菜单,如下图所示。在目录树中选择“D:\SGDownload”目录(即临时数据存放的目录)并点击“确定”按钮完成选择,如下图所示。以上设置完成后,“成都_Temp”将在树中显示,如下图所示。在“成都_Temp”上单击鼠标右键,并在菜单中选择“ShareAsImageService...”,将显示如下图所示对话框。点击“下一步”,将影像服务的名称改为“成都”,如下图所示。再点击“Continue”,如下图所示。在显示的“ServiceEditor”对话框中分别选择“Caching”选项中的“Usingtilesfromacache”和“ArcGISOnline/BingMaps/GoogleMaps”参数,如下图所示。然后,点击右上角的“Publish”发布,将显“CopyingDatatoServer”对话框,如下图所示。点击“OK”按钮,将开始将数据复制到服务器并进行打包处理,如果数据量大,这个过程会非常花时间,这就是我们之前只选择少量数据的重要原因。处理完成后,提示发布成功,点击“OK”按钮可以关闭提示,如下图所示。这里我们将看到一个名叫“成都”的ImageService影像服务,如下图所示。同时,在ArcGIS缓存目录“C:\arcgisserver\directories\arcgiscache”也会生成“成都_ImageServer”缓存目录,如下图所示。但我们打开目录后,会发现文件是紧凑型的缓存文件,理论上这样的文件对访问速度是有好处的,但对于有上100万张的瓦片打包的话,需要花时间太久,据用户反映有时还会报错,且最后在客户端呈现的效果也不太理想。第五步:偷梁换柱为了解决第四步中出现的问题,我们把生成的缓存替换为我们第一次导出的1-19级的全部数据。在影像服务“成都”上单击右键,选择“stop”停止服务。将缓存目录中的“成都_ImageServer”文件夹改为“成都_ImageServer_2”(也可以改为其它任意名字,也可以删除该目录);然后将“成都_ArcgisServerTiles”改为“成都_ImageServer”,如下图所示。文件夹改名完成后,重新启动该服务,如下图所示。为了完整显示所有级别的数据,我们需要重新设置一下需要显示的级别范围。在影像服务上单击右键选择“ServiceProperties...”,如下图所示。在显示的“ServiceEditor”对话框中,拉动级别滑块,将显示级别设置为0到18,即对应下载器中的1到19级。点击“OK”按钮完成设置并生效。第六步:查看结果在浏览器中打开管理器,如下图所示。输入用户名称密码登录后,如下图所示。点击“成都”影像服务,可以任意查看地图数据了,如下图所示。小结:记得在9.3版本的ArcCalalog中可以直接新建ImageService,并指定下载器导出的ArcGISServer缓存即可实现ImageService的发布,但在10.0以上的版本中没有找到该功能,经过一天的摸索测试,最终采用了偷梁换柱的方式才得以实现,即用一个比较小的数据快速建立一个ImageService,然后再将该服务所对应的缓存数据替换为需要发布的海量数据。如果大家有更好的方法,欢迎交流指正!
本文标题:如何基于谷歌地图的Server缓存发布Image Service服务
链接地址:https://www.777doc.com/doc-4175273 .html