利用全能电子地图下载器+GeoWebCache发布Arcgis Server缓存瓦片过程全记录


前言

因为公司业务需要,要在内网搭建一个瓦片地图服务器,于是乎这个任务就落到我这个实习生身上了。这个属于GIS(地理信息系统)的范畴了,我也从来没有接触过这个,这个课程在大学的时候只有其他专业有。哎~没办法,还是要开始折腾,要找到一种方便好用的跨平台方案还真不容易,前前后后试了好几款软件,才找到今天要说的这个组合。为了搭建这个服务足足折腾了我两天啊!还不知道最后的效果是不是公司需要的,但愿吧~

软件选择

这几天主要试了三四款软件:
– BIGEMAP
– TileMapServer
– 全能电子地图下载器
– GeoWebCache
下面对这几款做一个简评吧:
– BIGEMAP:方便好用,并且提供基于XMAPP的离线地图发布服务,不过痛点就是要授权,它是使用一串客户ID进行授权,网上的注册机根本不管用!授权方式有两种,一种是交钱,还有一种是帮忙推广,不过听说后者虽然是给你授权了,但是有些功能还是用不了。so,不太适合开发,不选择
– TileMapServer:软件体积小,但是痛点就是不适合初学者用啊,也就是说切图的时候经纬度都要自己输入,不仅如此,所有的地图数据源要我们自己提供,还要写在复杂的配置文件中,真的会崩溃!so,不太适合服务器搭建,不选择
– 全能电子地图下载器:极力推荐!设置简单,并且提供多种地图数据源,支持多种格式导出,能与ArcGis这类的专业GIS软件对接。关键是,有绿色版!so,切图就选它了!本文末放出下载链接
– GeoWebCache一个用Java Web编写的地图缓存服务器,内部用到了Spring框架,我想有Spring框架基础知识的话会比较容易上手,因为许多配置都是定义在配置文件中的,熟悉Spring的话看过去就会有亲和感~这款软件的优点是:开源、跨平台!并且支持前者全能电子地图下载器导出的ArcGis Server 缓存瓦片,非常适合服务器端搭建!本文末放出下载链接

关于GeoWebCache的误区

百度上很多资料说GeoWebCache只支持ArcGis Server的松散型(exploded format)瓦片,而不支持紧凑型(compact format)瓦片。这个是在早期版本的说法了,后来比较新的版本官方在文档中说明了两者都支持

以下是GeoWebCache1.6.3文档中Serving Layers From Pre-Cached ArcGIS Tiling Schemes这一节的引子内容:

GeoWebCache offers the possibility of serving cached tiles created by ArcGIS Server 9.2, 9.3 and 10.0, as long as the ArcGIS cache is in the so called “exploded format”, and not in the “compact format” introduced in ArcGIS Server 10. This is so because the compact storage format uses a legacy file format to store multiple tiles inside a single file, but it’s structure is not published by ESRI.

以下是GeoWebCache1.10.0文档中Serving Layers From Pre-Cached ArcGIS Tiling Schemes这一节的引子内容:

GeoWebCache can serve cached tiles created by ArcGIS Server 9.2, 9.3 and 10.x, in either the so called “exploded format” or the “compact format” introduced in ArcGIS Server 10.

显然,网上的说法并不准确。

思路

思路非常简单:
1、从全能电子地图下载器下载瓦片数据,并用该软件转换成ArcGis Server缓存瓦片。
2、使用Notepad++将conf.xml和conf.cdi转换成UTF-8无BOM模式
3、使用GeoWebCache发布瓦片

环境

  • JDK:1.8.0_171
  • Tomcat:7.0.69
  • 全能电子地图下载器:3.0
  • GeoWebCache:1.10.0

搭建过程

Setp1 利用全能电子地图下载器下载瓦片数据

注:数据源我选择了谷歌地图

选择下载区域

左侧勾选下载地图等级

注:等级越高,瓦片数越多,体积越大

把下载的切片转换为ArcGis Server缓存瓦片

注:任务文件要和左侧的【任务列表】中的保持一致

转换成功后会自动弹出所在文件夹

Setp2 GeoWebCache的部署与配置

部署GeoWebCache

将GeoWebCache1.10.0的war包放到Tomcat目录中Webapps目录下,启动Tomcat即可,它会自动解压部署。如果部署过程中没有报错的话,浏览器输入
http://127.0.0.1:8080/geowebcache,会看到以下界面

注:部署成功后,先关闭Tomcat,并且删除war包,不然再次启动的时候会重新部署,之前做的所有配置都前功尽弃了。。。

配置GeoWebCache

寻找geowebcache.xml文件位置

http://127.0.0.1:8080/geowebcache所打开网页的最下面,有这样一行内容

画红框的地方就是配置文件的所在地,这个是可以修改的,原始位置应该在tmp目录下面的某个地方。

修改geowebcache.xml文件位置,并配置geowebcache-core-context.xml

将上面查到的geowebcache.xml文件拷贝到本地硬盘的某一个位置,我上面就拷贝到了C盘的map目录下。
然后在Tomcat安装目录下的geowebcache目录中打开geowebcache-core-context.xml,找到以下这个bean标签

将原来的

<constructor-arg ref="gwcDefaultStorageFinder" />

注释掉,并添加

<constructor-arg value="C:\\map\\" />

这个value的值就是你geowebcache.xml文件所在的物理磁盘路径

转换由全能电子地图下载器生成的Arcgis Server瓦片缓存的配置文件格式



分别用NotePad++打开,并选择【使用UTF-8编码】,保存

如果不进行此步骤,启动Tomcat的时候会报错

上传地图切片数据

将地图瓦片缓存和conf.xmlconf.cdi复制到服务器上的某个位置即可(建议为每一个缓存建立一个文件夹进行存放)
我是复制到了
C:\map\arcgiscache\fztest\Layers目录下

配置geowebcache.xml

打开geowebcache.xml,在layers标签内添加以下内容:

<arcgisLayer>
    <name>fztest</name>
    <tilingScheme>C:\\map\\arcgiscache\\fztest\\Layers\\conf.xml</tilingScheme>
    <tileCachePath>C:\\map\\arcgiscache\\fztest\\Layers\\_alllayers</tileCachePath>
</arcgisLayer>

注:name:表示要显示在页面上的名称
tilingScheme:conf.xml文件所在处
tileCachePath:瓦片地图图片数据所在位置

Setp3 启动Tomcat,部署结束!

如果一切顺利,再次进入网页时,点击A list of all the layers and automatic demos

会进入到一个Demo页面,在这里就会看到指向我们部署的名为fztest的瓦片数据链接了

点击右侧的png,即可浏览

软件下载链接

全能电子地图下载器3.0(已破)
GeoWebCache 1.10.0
注:GeoWebCache 1.10.0下载war包即可

转载自:https://blog.csdn.net/mgsky1/article/details/80151316

You may also like...