cesium 基於天地圖服務 完成底圖標注渲染加切換


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Cesium App</title>
    <script src="./scripts/Cesium/Cesium.js"></script>
    <link rel="stylesheet" href="./scripts/Cesium/Widgets/widgets.css">
    <style>
        html,body{
            width: 100%;
            height: 100%;
            margin: 0;
            padding:0;
        }
        #baseLayerPickerContainers{
            position: absolute;
            right: 30px;
            top: 20px;
            z-index: 666;
        }
    </style>
</head>
<body>
    <!-- 整個渲染視圖 -->
    <div id="cesiumContainer" style="height:100%">
        <!-- 自定義控件 -->
        <div id="baseLayerPickerContainers"></div>
    </div>
    <script>
    //影像底圖切換
    var img_tdt_yx = new Cesium.ProviderViewModel({
        name: "影像底圖",
        tooltip: "影像底圖",
        //顯示切換的圖標
        iconUrl: "./images/img_tdt_yx.png",
        creationFunction: function () {
            var esri = new Cesium.WebMapTileServiceImageryProvider({
                url: 'http://t0.tianditu.com/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=7711a24780452f03bb7c02fba98183b9'
            });
            //影像標注
            addImageryProvider("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&format=tiles&tk=7711a24780452f03bb7c02fba98183b9");
            return esri;
        }
    });
    //矢量底圖切換
    var img_tdt_sl = new Cesium.ProviderViewModel({
        name: "矢量底圖",
        tooltip: "矢量底圖",
        iconUrl: "./images/img_tdt_sl.png",
        creationFunction: function () {
            var esri = new Cesium.WebMapTileServiceImageryProvider({
                url: 'http://t0.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=7711a24780452f03bb7c02fba98183b9'
            });
            addImageryProvider("http://t0.tianditu.gov.cn/cva_w/wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=7711a24780452f03bb7c02fba98183b9")
            return esri;
        }
    });

    //地形底圖切換
    var img_tdt_dx = new Cesium.ProviderViewModel({
        name: "地形底圖",
        tooltip: "地形底圖",
        iconUrl: "./images/img_tdt_dx.png",
        creationFunction: function () {
            var esri = new Cesium.WebMapTileServiceImageryProvider({
                url: 'http://t0.tianditu.gov.cn/ter_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=ter&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=7711a24780452f03bb7c02fba98183b9'
            });
            addImageryProvider("http://t0.tianditu.gov.cn/cta_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cta&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=7711a24780452f03bb7c02fba98183b9")
            return esri;
        }
    });

    //ui入口
    let viewer = new Cesium.Viewer('cesiumContainer',{
        animation:false,//是否創建動畫小器件,左下角儀表 
        timeline: false,//是否顯示時間軸    
        sceneModePicker: false,//是否顯示3D/2D選擇器    
        baseLayerPicker: false,//是否顯示圖層選擇器   
        geocoder: false,//是否顯示geocoder小器件,右上角查詢按鈕
        scene3DOnly: true,//如果設置為true,則所有幾何圖形以3D模式繪制以節約GPU資源 
        navigationHelpButton: false,//是否顯示右上角的幫助按鈕
        homeButton: false,//是否顯示Home按鈕
        infoBox: true,//是否顯示信息框    
        showRenderLoopErrors: false//如果設為true,將在一個HTML面板中顯示錯誤信息 

    });
    //影像標注加載
    let addImageryProvider = function(url){
        viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
            url: url,
            layer: "tdtImgAnnoLayer",
            style: "default",
            format: "image/jpeg",
            tileMatrixSetID: "GoogleMapsCompatible",
            show: false
        }))
    }
   
    //隱藏cesium左下角logo
    viewer._cesiumWidget._creditContainer.style.display = 'none';
    
    //自定義圖層切換
    let baseLayerPicker = new Cesium.BaseLayerPicker("baseLayerPickerContainers",{
        globe:viewer.scene.globe,//傳入全局地球對象
        imageryProviderViewModels:[img_tdt_yx, img_tdt_dx, img_tdt_sl],//需要進行切換的幾個圖層
    })
    //更改地圖切換的標題
    document.querySelector('.cesium-baseLayerPicker-sectionTitle').innerText = "底圖切換"
    </script>
    
</body>
</html>

希望對你們有幫助……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM