Cesium加载天地图

天地图

天地图官网网址,申请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 ,即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值