最近使用Cesium+WPF来进行项目开发,一起研究一下Cesium如何加载离线地图吧。
首先展示一下效果图:
1.高德影像瓦片地图离线加载:
1.我使用的是太乐地图下载器,下载高德的卫星图或者天地图的卫星图都行,导出为“瓦片:谷歌”,jpeg格式。下载好的内容如下图。全球我下到了5级,中国区域6-8级,北京市9-14级。这样地图数据比较小。
2.Cesium加载瓦片图的方式,下面只是一种方式:
var viewer = new Cesium.Viewer("cesiumContainer", {
imageryProvider:new Cesium.UrlTemplateImageryProvider({
url:'gaoDeMap/{z}/{x}/{y}.jpg',
fileExtension:"jpg"
}),
baseLayerPicker:false,
geocoder: false,
});
2.DEM高程图的离线加载
1.DEM高程图的下载,我是在地理空间数据云 (gscloud.cn)这个地方下载的,是免费的,可以下载30M和90M的高程数据。具体方式是进入“高级检索”,选择图源类型,需要下载的区域名称等,最后点击“检索”即可出现图源列表供我们下载。
不过下载的文件是.tif格式,无法直接给cesium使用,我们需要转换为.terrian格式,转换我使用的是cesiumlab2,这个软件是免费的,使用方法是登录后,点击“数据处理”->"地形切片"->"添加"->选择你下载的tif文件->选择“散列文件”->选择“输出文件”路径->“确认”。
2.Cesium加载高程图的方式,如下图所示,其中url:'aASTGTM',是指放高程图的路径。
var terrain = new Cesium.CesiumTerrainProvider({
url: 'aASTGTM',
});
viewer.terrainProvider=terrain;
3.示例运行方法
在项目的根目录开启一个http静态文件服务,然后就可以使用浏览器进行浏览了。我使用的是python3自带的httpServer,方法是在项目根目录下运行python -m http.server,然后在浏览器输入地址http://localhost:8000/index.html即可。