使用天地图前先要注册天地图开发者获取天地图的key。
在 Cesium 中加载天地图(Tianditu)的底图和三维地形,通常需要使用 Cesium 提供的 API 来添加自定义的图层。以下是一个基本的示例代码,展示了如何在 Cesium 中添加天地图的瓦片图层:
// 创建Cesium Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');
// 天地图的URL模板
var tiandituUrl = 'http://{s}.tianditu.gov.cn/DataServer?T=图层类型&x={x}&y={y}&l={z}&tk=您的天地图密钥';
// 添加天地图影像底图层
var imageryProvider = new Cesium.UrlTemplateImageryProvider({
url: tiandituUrl.replace('图层类型', 'img_w'), // 影像图层
subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'], // 天地图的子域
tilingScheme: new Cesium.WebMercatorTilingScheme(),
maximumLevel: 18
});
viewer.imageryLayers.addImageryProvider(imageryProvider);
// 添加天地图矢量注记层
var labelProvider = new Cesium.UrlTemplateImageryProvider({
url: tiandituUrl.replace('图层类型', 'cia_w'), // 矢量注记图层
subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
tilingScheme: new Cesium.WebMercatorTilingScheme(),
maximumLevel: 18
});
viewer.imageryLayers.addImageryProvider(labelProvider);
在上述代码中,图层类型
需要替换为天地图提供的具体图层类型,例如 img_w
代表影像图层,cia_w
代表矢量注记图层。您的天地图密钥
需要替换为您申请的天地图服务密钥。
对于三维地形的加载,可以使用 Cesium 的 CesiumTerrainProvider
或者其他支持的地形数据提供者。由于搜索结果中没有提供具体的代码示例,以下是一个通用的地形加载示例:
// 添加天地图地形
var terrainProvider = new Cesium.CesiumTerrainProvider({
url: '天地图地形服务的URL',
requestVertexNormals: true // 如果需要地形光照效果,设置为true
});
viewer.terrainProvider = terrainProvider;
在这段代码中,天地图地形服务的URL
需要替换为天地图提供的地形服务的实际 URL。请注意,天地图的服务可能有所变化,因此在实际应用中需要查阅最新的天地图服务文档或者联系天地图服务提供商获取正确的 URL 和参数设置。
cesium版本
"cesium": "^1.114.0",
运行效果
实例代码下载
代码运行环境vue3 vite js nodejs 16