天地图
天地图官网网址,申请key。个人申请或企业申请。
加载墨卡托投影投影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Include the CesiumJS JavaScript and CSS files -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// 首先得去网站申请一个token,如果你要用cesium 自带的影像和OSM模型的话: https://cesium.com/ion/tokens.
// 用自己的token 替代`your_access_token` .
Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4ZjNhMDU4NC0wNWMxLTRhNmEtYWI4Yy01M2EzMzY2NTY0ZTYiLCJpZCI6MTkzMTksInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1NzUzNTUxMzJ9.zO0b6MjVkjfRDD9bHG1ffvTVbTA0WQ1JU16X9cndyv0";;
// 初始化一个id为 `cesiumContainer`的HTML元素作为我们的容器,这里不传ID传DO .
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: Cesium.createWorldTerrain()
});
// 加载OSM建筑,也就是一些城市的白膜建筑,只有形状没有纹理的模型.
// const buildingTileset = viewer.scene.primitives.add(Cesium.createOsmBuildings());
// 所有的视图都在viewer中,后期的教程也基本围绕viewer展开,这里我们调用相机的fltTo函数,输入经纬度和高度,俯仰角等,需要注意的是
// 经纬度需要我们转换成cesium的Cartesian3,同理heading,pitch也需要从角度转成弧度,否则你会看到奇奇怪怪的视角.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(121.67754, 29.75614, 60000),
});
var TDU_Key = "f0175927031c1e12cb804b0c3b8cc***"//天地图申请的**
//在线天地图影像服务地址(墨卡托投影)
var TDT_IMG_W = "http://{s}.tianditu.gov.cn/img_w/wmts?service=wmts&request=GetTile&version=1.0.0" +
"&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}" +
"&style=default&format=tiles&tk=" + TDU_Key;
//在线天地图矢量地图服务(墨卡托投影)
var TDT_VEC_W = "http://{s}.tianditu.gov.cn/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=" + TDU_Key;
//在线天地图影像中文标记服务(墨卡托投影)
var TDT_CIA_W = "http://{s}.tianditu.gov.cn/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=" + TDU_Key
//在线天地图矢量中文标记服务(墨卡托投影)
var TDT_CVA_W = "http://{s}.tianditu.gov.cn/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=" + TDU_Key;
let Img = new Cesium.WebMapTileServiceImageryProvider({ //调用影响中文服务
url: TDT_VEC_W,//url地址,换影像还是矢量,随便你喜欢
layer: "img_w", //WMTS请求的层名称
style: "default",//WMTS请求的样式名称
format: "tiles",//MIME类型,用于从服务器检索图像
tileMatrixSetID: "GoogleMapsCompatible",// 用于WMTS请求的TileMatrixSet的标识符
subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],//天地图8个服务器
minimumLevel: 0,//最小层级
maximumLevel: 18,//最大层级
})
viewer.imageryLayers.addImageryProvider(Img)//添加到cesium图层上
let cia = new Cesium.WebMapTileServiceImageryProvider({ //调用影响中文注记服务
url: TDT_CVA_W,
layer: "cia_w",
style: "default",
format: "tiles",
tileMatrixSetID: "GoogleMapsCompatible",
subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],//天地图8个服务器
minimumLevel: 0,
maximumLevel: 18,
})
// viewer.imageryLayers.addImageryProvider(cia)//添加到cesium图层上
viewer.scene.globe.depthTestAgainstTerrain = !0;
// 没有影像图层时地球的底色
viewer.scene.globe.baseColor = Cesium.Color.BLACK;
// viewer.camera.flyTo({
// destination: new Cesium.Cartesian3.fromDegrees(116.435314, 22.960521, 2000.0),
// duration:2
// });
</script>
</div>
</body>
</html>
加载经纬度投影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Include the CesiumJS JavaScript and CSS files -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.100/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// 首先得去网站申请一个token,如果你要用cesium 自带的影像和OSM模型的话: https://cesium.com/ion/tokens.
// 用自己的token 替代`your_access_token` .
Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4ZjNhMDU4NC0wNWMxLTRhNmEtYWI4Yy01M2EzMzY2NTY0ZTYiLCJpZCI6MTkzMTksInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1NzUzNTUxMzJ9.zO0b6MjVkjfRDD9bHG1ffvTVbTA0WQ1JU16X9cndyv0";;
// 初始化一个id为 `cesiumContainer`的HTML元素作为我们的容器,这里不传ID传DO .
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: Cesium.createWorldTerrain()
});
// 加载OSM建筑,也就是一些城市的白膜建筑,只有形状没有纹理的模型.
// const buildingTileset = viewer.scene.primitives.add(Cesium.createOsmBuildings());
// 所有的视图都在viewer中,后期的教程也基本围绕viewer展开,这里我们调用相机的fltTo函数,输入经纬度和高度,俯仰角等,需要注意的是
// 经纬度需要我们转换成cesium的Cartesian3,同理heading,pitch也需要从角度转成弧度,否则你会看到奇奇怪怪的视角.
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(121.67754, 29.75614, 60000),
});
var TDU_Key = "f0175927031c1e12cb804b0c3b8c****"//天地图申请的**
viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
url: "http://t0.tianditu.gov.cn/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=" +
TDU_Key,
format: 'tiles',
tileMatrixSetID: 'c',
tilingScheme: new Cesium.GeographicTilingScheme(),
tileMatrixLabels: ['1', '2', '3', '4',
'5', '6', '7', '8', '9', '10','11',
'12', '13', '14', '15', '16', '17', '18'],
layer: "tdtImgAnnoLayer",
style: "default",
show: false
}));
// viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
// url: "http://t0.tianditu.gov.cn/cva_c/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=" +
// TDU_Key,
// format: 'tiles',
// tileMatrixSetID: 'c',
// tilingScheme: new Cesium.GeographicTilingScheme(),
// tileMatrixLabels: ['1', '2', '3', '4',
// '5', '6', '7', '8', '9', '10','11',
// '12', '13', '14', '15', '16', '17', '18'],
// layer: "tdtImgAnnoLayer",
// style: "default",
// show: false
// }));
</script>
</div>
</body>
</html>
经纬度投影为例,如何使用官网图层,加载矢量底图
http://t0.tianditu.gov.cn/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=
把img_c 更换成vec_c ; img更换成vec ,即可。