最近再弄geoserver的缓存,其实数据量并不大,但是本着能快一点是一点的想法,就弄了个geowebcache
过程很简单,在web.xml添加存储位置即可
{你的geoserver存储位置}\geoserver-2.15.0\webapps\geoserver\WEB-INF\web.xml中添加
代码如下
<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
<param-value>E:\temp\cache</param-value>
</context-param>
<context-param>
但是当开始用leaflet加载wmts的时候蒙逼了,因为leaflet官方并没有支持wmts的方法,但是好在有大神写过wmts的拓展方法
后来改用leaflet自带的基础titleLayer进行加载就可以了
var map = new L.Map('map', {
maxZoom: 10,
minZoom: 1,
zoom: 1,
zoomSnap: 0.5,
zoomControl: false,
attributionControl: false
});
L.tileLayer('http://localhost:8080/geoserver/gwc/service/wmts?layer=china&tilematrixset=EPSG:900913&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix=EPSG:900913:{z}&TileCol={x}&TileRow={y}', {
}).addTo(map);
但是使用4326坐标系并不能加载成功,会有部分缺失,所以使用geowebcache给出的另一种坐标90091
经过几天的硬憋,终于找到了leaflet可以加载geowebcache中EPSG4326的方法
思路:查找geowebcache的wms加载方法
所遇问题:geoserver给出的文档让人头秃,看了几遍都没看懂咋回事
解决:
L.tileLayer
.wms('http://localhost:8080/geoserver/gwc/service/wms', {
service: 'WMS',
version: '1.1.1',
request: 'GetMap',
layers: layers,
transparent: true,
format: 'image/png'
})
直接通过wms方法即可加载,但new Map的时候需要设置crs
crs: L.CRS.EPSG4326
如有问题请留言,本博客仅遇问题时更新