应用场景
我是革命一块砖,哪里需要往哪搬!哈哈,身为全栈做的活挺多了,不过公司最近要用geoserver发布地图服务,又要开始了一个陌生的领域的探索。
Geoserver是一款开源免费的地图服务器,功能十分强大。或许我们会碰到这样一个场景,工作在内网下,不能使用外网的天地图资源(手动笑cry),这时我们只能把需要的地图下载下来用geoserver发布了。然而对于多层级的数据地图数据发布方案不是很明确。我们用一些地图下载器下载的资源一般可以分为三种吧:大图拼接(.tif)格式,各种规范的瓦片,各种规范的瓦片包。
多层级地图 MBTilers规范数据发布
1.配置Geoserver
Geoserver默认是不支持MBTilers数据的,但齐官网也给我们提供扩展jar包,我们只需官网下载对应的扩展jar即可,如果你的Geoserver没有配置过wps服务,需要额外下载geoserver-2.9.3-wps-plugin.zip包(我的geoserver版本是2.9.3,你们只需要下对应自己的版本即可),然后再去下载MBTilers包geoserver-2.9-SNAPSHOT-mbtiles-plugiin.zip这个包,下载下来直接把里面所有的jar包解压到你们安装路径下的/webapps/geoserver/WEB-INF/lib文件下,重启geoserver即可。
2.发布数据
其实配置完了,发布就是很简单的事情,跟发布普通的数据一样。
可以看到多了一个MBTilers选项,在里面进行相应的配置就好了,对了,数据文件一定要放在安装路径下的/data_dir文件夹下。
多层级地图 大图拼接格式
要发布这些多层级的数据还真需要点探索,对于大图拼接的.tif数据,主要是解决多层级的问题,我们可以使用直接加载GeoTIFF数据,在发布图层界面,我们Tile Caching(瓦片缓存)进行设置,这里面就是设置一下Gridset这个属性,就是设置切片的规则,选择所需的坐标系,以及缩放的层级即可。设置完后,点击左侧的Tile Layers,点击我们刚发布图层的Seed/Truncate!
主要对红框中的Zoom start(缩放层级开始),Zoom stop进行设置时。
重点来了
我们在下载多层级地图时,每个层级会得到一个.tif文件,然而我们用GeoTIFF发布时数据源只能选择一个tif文件,我们只能一个层级.tif文件发布一次,然后用geoserver的对其进行切图,上面的红框中就是我们选择的一个tif数据进行切图设置,所以我们填一样的,假设我们这个tif数据是第12层级的,我们便填写12。依次循环对不同层级的tif文件处理完成后,可以去geoserver的安装路径下的/data_dir/gwc目录下查看我们切完的数据,然后把我们多个tif数据目录合在一起,在geoserver管理界面的tile
caching中的select one中随便选择一个预览就能看到我们多层级的数据了。
效果图: