生成Cesium地形文件(terrain),并用Cesium完成调用

Cesium 中的地形系统是一种由流式瓦片数据生成地形的技术。cesiumjs 支持
两种类型的地形,STK World Terrain 和 Small Terrain。

STK World Terrain 是高分辨率, 基于 quantized mesh 的地形。这是一种基
于 TIN 三角网的地形,可充分利用 GL 中的 Shader 来渲染,效果相当逼真。STK
World Terrain 使用了多种数据源,分别适应不同地区和不同精度时的情形。STK
World Terrain 地形是怎样生成的是不公开的,如需应用于封闭的局域网时,则需购
买 AGI 的 STK terrain server。但是 AGI 提供了一个 webapi 可供因特网上调用,并
提供了这种地形的格式细节,期待早日有高手作出一个转换工具。

Small Terrain 是中等高分辨率,基于 heightmap 的地形,渲染出的地形效果
不如 quantized mesh 的地形,但也基本能接受。网上已经有一些开源的生成工具可
以由 DEM 数据生成这种规范的.terrain 文件,因此我们下面重点说明这种类型的地形生
成。

数据准备

工具安装

下载cesiumlab实验室的工具
在这里插入图片描述

开始切地形

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

地形发布

请看《深夜总结:使用QGIS切片并用Cesium完成调用》3. 发布切片章节

Cesium调用

	const key="天地图key"
	const terrainProvider = new Cesium.CesiumTerrainProvider({
        url: "http://localhost:8091/terrain_tiles"
    });
    const viewer = new Cesium.Viewer('cesiumContainer', {
       	terrainProvider,
        imageryProviderViewModels: [
            new Cesium.ProviderViewModel({
                name: "天地图影像",
                iconUrl: "/imgs/map/tdt_img.jpg",
                creationFunction: () => {
                    const imgImageryProvider = new Cesium.WebMapTileServiceImageryProvider({
                        url: "http://t{s}.tianditu.com/img_c/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=" + key,
                        subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
                        tilingScheme: new Cesium.GeographicTilingScheme(),
                        tileMatrixLabels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"]
                    })
                    return [imgImageryProvider]
                }
            })
        ]
    })

    const dataSource = Cesium.GeoJsonDataSource.load('../datas/qzgy.geojson', {
        stroke: Cesium.Color.HOTPINK,
        fill:  Cesium.Color.TRANSPARENT ,
        strokeWidth: 3,
        markerSymbol: '?'
    })
    viewer.dataSources.add(dataSource);
    viewer.flyTo(dataSource);

在这里插入图片描述
珠穆朗玛峰
在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值