1 Viewer查看器控件的设置
const viewer = new Cesium.Viewer('container', {
//地形图层
terrain: Cesium.Terrain.fromWorldTerrain(),
//信息窗口
infoBox: false,
//显示查询按钮
// geocoder: false,
//home按钮
// homeButton: false,
// 控制查看器的显示模式-地球/平面
// sceneModePicker: false,
// 是否显示图层选择
baseLayerPicker: false,
//帮助按钮
navigationHelpButton: false,
//播放动画
// animation: false,
//时间线
// timeline: false,
//全屏模式
// fullscreenButton: false
})
2 高德地图的添加
-
矢量图层
//加载高德/百度影像地图,UrlTemplateImageryProvider该接口是加载谷歌地图服务的接口
viewer.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
layer: 'tdtVecBasicLayer',
style: 'default',
format: 'image/png',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
-
矢量注记图层
// 如果需要叠加高德/百度注记地图则添加以下代码
viewer.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: 'http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
})
)
3 天地图的添加
申请key
天地图API (tianditu.gov.cn)http://lbs.tianditu.gov.cn/home.html
-
加载天地图影像图层
//加载天地图
const webKey = 'key'
//天地图属于网络底图切片影像图层 影像底图
//WebMapTileServiceImageryProvider该接口是加载WMTS服务的接口,天地图是典型的WMTS服务的原型
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
-
加载天地图影像注记图层
//影像注记
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
-
加载天地图矢量图层
//矢量底图
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=' +
webKey,
layer: 'tdtVecBasicLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
-
加载天地图矢量注记图层
//矢量注记
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cva_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
})
)
4 完整代码
<template>
<div id="container"></div>
</template>
<script setup>
import { onMounted } from 'vue'
import * as Cesium from 'cesium'
import 'cesium/Build/Cesium/Widgets/widgets.css'
Cesium.Ion.defaultAccessToken = key
onMounted(async () => {
// 地球视图,底图加载
const viewer = new Cesium.Viewer('container', {
//地形图层
terrain: Cesium.Terrain.fromWorldTerrain(),
//信息窗口
infoBox: false,
//显示查询按钮
// geocoder: false,
//home按钮
// homeButton: false,
// 控制查看器的显示模式-地球/平面
// sceneModePicker: false,
// 是否显示图层选择
baseLayerPicker: false,
//帮助按钮
navigationHelpButton: false,
//播放动画
// animation: false,
//时间线
// timeline: false,
//全屏模式
// fullscreenButton: false
})
//隐藏cesium Icon-logo
viewer.cesiumWidget.creditContainer.style.display = 'none'
// cesium的默认视角
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(
89.5,
20.4,
110.4,
61.2
)
//加载天地图
const webKey = 'key'
//天地图属于网络底图切片影像图层 影像底图
//WebMapTileServiceImageryProvider该接口是加载WMTS服务的接口,天地图是典型的WMTS服务的原型
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
//影像注记
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
//矢量底图
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=' +
webKey,
layer: 'tdtVecBasicLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
//矢量注记
viewer.imageryLayers.addImageryProvider(
new Cesium.WebMapTileServiceImageryProvider({
url:
'http://t0.tianditu.com/cva_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=' +
webKey,
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
})
)
//加载高德/百度影像地图,UrlTemplateImageryProvider该接口是加载谷歌地图服务的接口
viewer.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
layer: 'tdtVecBasicLayer',
style: 'default',
format: 'image/png',
tileMatrixSetID: 'GoogleMapsCompatible',
show: false,
})
)
// 如果需要叠加高德/百度注记地图则添加以下代码
viewer.imageryLayers.addImageryProvider(
new Cesium.UrlTemplateImageryProvider({
url: 'http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',
layer: 'tdtAnnoLayer',
style: 'default',
format: 'image/jpeg',
tileMatrixSetID: 'GoogleMapsCompatible',
})
)
// 将三维球定位到中国
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(103.84, 31.15, 17850000),
orientation: {
heading: Cesium.Math.toRadians(348.4202942851978),
pitch: Cesium.Math.toRadians(-89.74026687972041),
roll: Cesium.Math.toRadians(0),
},
complete: function callback() {
// 定位完成之后的回调函数
},
})
})
</script>
<style scoped>
* {
padding: 0;
margin: 0;
}
#container {
height: 100%;
width: 100%;
}
</style>
5 小提示
- 注意检查token或key是否添加
- 检查引入cesium样式是否正确