• 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{
                 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>

    希望对你们有帮助……

  • 相关阅读:
    开发板S3C2440挂起NFS步骤
    wind10系统 Atheros AR9271 Wireless Network Adapter USBwifi无线网卡的驱动安装解决无法搜索wifi信号,连接wifi信号无法上网的问题
    编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
    led.c驱动框架2nd
    led.c驱动框架
    文件I/O的操作实例
    Python os.removedirs() 和shutil.rmtree() 用于删除文件夹
    Python os.remove() 删除文件
    Python os.chdir() 方法
    Python os.access() 方法
  • 原文地址:https://www.cnblogs.com/y-y-y-y/p/10450294.html
Copyright © 2020-2023  润新知