最近项目需要离线部署地图服务,中间找了一个合作的公司。现在项目接近尾声,总体感觉合作的公司不成熟,我们自己之前更是没有接触过这种地理信息服务相关的业务,中间也有各种甩锅的经历,这不是重点就不细说了。
项目始于Cesium, 中间结合了倾斜模型,模型单体化,离线地图服务部署。今天 主要说一下离线地图服务部署的问题。
-
地图数据来源
离线地图数据来源,这里需要瓦片数据,一般有好多公司提供下载,但是有些收费,这里有个链接,可以参考一下https://blog.csdn.net/u011365716/article/details/84444115,貌似提供免费的地图服务下载器。一般超过18级地图普遍是要收费的,这里有个精度对比,水经注需要转发,比较坑
到这里假设已经下载好离线地图瓦片数据,开始部署geoserver服务。
-
geoserver 服务安装启动
geoserver 需要安装JDK环境,不赘述了。geoserver提供windows和Linux的版本,下载对应的文件,解压,运行就可以。geoserver默认端口8080,修改端口在
然后到bin目录下,运行对应的脚本。启动成功
- geoserver 部署
- 创建工作空间
- 网格策略
-
数据存储
然后把下载的瓦片数据放到 data_dir文件夹下
var viewer = new Cesium.Viewer('cesiumContainer', {
animation: false,
baseLayerPicker: true,
geocoder: true,
timeline: false,
sceneModePicker: true,
navigationHelpButton: false,
infoBox: true
});
viewer.imageryLayers.removeAll();
//加载GeoServer:呼和浩特地图
viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
url: "http://localhost:9090/geoserver/gwc/service/wmts",
layer: 'dy:huhot',
style: '',
format: 'image/png',
tileMatrixSetID: 'EPSG:3857',
tileMatrixLabels: ['EPSG:3857:0', 'EPSG:3857:1', 'EPSG:3857:2', 'EPSG:3857:3', 'EPSG:3857:4', 'EPSG:3857:5', 'EPSG:3857:6', 'EPSG:3857:7', 'EPSG:3857:8'],
maximumLevel: 9,
credit: new Cesium.Credit('HHUAV WMTS')
}));
上面就是使用Cesium加载发布的wmts服务后显示的地图,我们也可以看一下wmts服务的组织结构
替换对应的端口和IP,地址http://localhost:6688/geoserver/gwc/service/wmts?REQUEST=getcapabilities