内网geoserver发布多层级影像数据,并实现调用(使用leaflet)

公司近期会有项目需要实现在内网环境下调用高德、百度地图,但是内网与互联网又是物理隔离,无法直接调用各地图api,目前的方法是,将需要使用的地图下载到本地服务器上,并通过geoserver发布为服务,来实现调用。
步骤分为以下几步:

一、下载地图数据

在各种地图下载器中流连之后,发现还是“太乐地图下载器”好用些,下载下来直接就可以发布,只需要注册下就可以。【其他下载器:BIGEMAP下载器、水经注、sxearth等,只是繁琐程度不同,都可以使用】

‘太乐’下载步骤放在文章末尾,需要请移步(毕竟不是文章重点(0.。0))
第二种下载方式(python)
需要下载PyCharm 2021.1.2 x64程序,将python包丢进去进行下载
代码下载位置:
链接:https://pan.baidu.com/s/1tce6iEiVW5lLyFyr93asTg
提取码:a21k

#raw_input(“等待中…”)这句需要注释才能执行

二、发布服务(geoserver)

【新建工作区——新建数据存储——发布为图层——切片处理】
①新建工作区
在这里插入图片描述在这里插入图片描述②新建数据存储
在这里插入图片描述



接下来需要根据下载数据的类型选择数据存储的格式,我这里下载的地图是tif格式的影像数据,因此需要选择“栅格数据”中的"GeoTIFF"


在这里插入图片描述
在这里插入图片描述确定后自动跳转,点击“发布”按钮
在这里插入图片描述
一般需要调整的只有这两个选项卡中的内容,其中“数据”选项卡中需要确认图层边框、坐标参考系统、覆盖参数。覆盖参数默认为空,此时加载图层会有黑边,调整为“000000”(即纯黑色),可以去掉黑边。"Tile Caching"选项卡中需要调整网格集的坐标系统,只留下需要的就可以,我这边只留下“EPSG:3857”。【ps:如果是刚安装的geoserver,一般来说没有这个坐标系,需要手动添加,找页面最左侧“Gridsets”即可】
在这里插入图片描述完成后点击“保存”
在这里插入图片描述
在这里插入图片描述点击Tile Layers,在刚刚添加的图层后选择“Seed/Truncate”
在这里插入图片描述此时就做好了切片处理,切片存储在data_dir文件夹下的gwc文件夹里
在这里插入图片描述
多个图层发布服务就重复以上步骤即可。

三、调用服务地图

我这里使用的是leaflet,其他框架大同小异
对地图缩放做监听,每次地图缩放就调用对应级别的影像

//写给新手:“()=>”近似于function ***(),相当于不用写名称的方法
//具体差异自行百度
mymap.on('zoomend',()=>{
//wmsLayer提前定义了全局变量
					if(wmsLayer){
						mymap.removeLayer(wmsLayer);
					}
					//let是es6的用法,作用为定义局部变量
					let mm=mymap.getZoom();
					wmsLayer = L.tileLayer.wms("http://localhost:8080/geoserver/try/wms", {
						layers: 'try:L'+mm, //需要加载的图层
						format: 'image/png', //返回的数据格式
						transparent: true,
						//crs: L.CRS.EPSG4326
					});
					mymap.addLayer(wmsLayer);
				})

同一位置不同级别效果

在这里插入图片描述在这里插入图片描述在这里插入图片描述
看其他大佬采用方法为多图层切片后,把切片后的文件整理到一个文件夹下,然后就可以实现自动切换,但是我试过后发现只有在geoserver中预览时才会这样,实际调用的时候还是只显示其中一个图层的,百撕不得其姐,很奇怪,如果有大佬知道,烦请告知一二,或者日后我研究出来再更新本文。

下载地图(使用“太乐地图下载器”)

如果未注册的话,下载的地图会有水印,因此建议下载带注册机的“学习”版本。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述然后会进入下载界面,下载完成后自动在屏幕右下角弹出窗口询问是否导出地图,
在这里插入图片描述下载完成后自动打开位置
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值