Cesium 加载在线天地图瓦片和离线瓦片功能(cesium开发记录)

30 篇文章 0 订阅
16 篇文章 5 订阅

Cesium 加载在线天地图瓦片功能

在这里插入图片描述

1、未联网状态加载默认本地底图,保证地球有底图显示
let viewer = new Cesium.Viewer('cesiumContainer', {
    // 未联网状态下 默认显示球面地图
    imageryProvider: new Cesium.TileMapServiceImageryProvider({
        url: Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII')
    }),
    orderIndependentTranslucency: false,
    contextOptions: {
        webgl: {
            alpha: true
        }
    },
    baseLayerPicker: false,
    geocoder: false,
    timeline: true,
    navigationHelpButton: false,
    animation: false,
    fullscreenButton: false,
    skyAtmosphere: false, //光圈
    infoBox: false, //信息提示盒
    selectionIndicator: false //选中提示框
});
2、添加天地图瓦片(影像底图、影像注记)
var subdomains = ['0', '1', '2', '3', '4', '5', '6', '7'];
var layers = viewer.imageryLayers;
var blackMarble1 = layers.addImageryProvider(
    new Cesium.WebMapTileServiceImageryProvider({
        //影像底图
        url:
            'http://t{s}.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=' +
            '您的密钥',
        subdomains: subdomains,//URL模板中用于{s}占位符的子域。如果该参数是单个字符串,则字符串中的每个字符都是一个子域。如果它是一个数组,数组中的每个元素都是一个子域
        layer: 'tdtImgLayer',
        style: 'default',
        format: 'image/jpeg',
        tileMatrixSetID: 'GoogleMapsCompatible', //使用谷歌的瓦片切片方式
        show: true
    })
);
var blackMarble2 = layers.addImageryProvider(
    new Cesium.WebMapTileServiceImageryProvider({
        //影像注记
        url:
            'http://t{s}.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=' +
            '您的密钥',
        subdomains: subdomains,
        layer: 'tdtCiaLayer',
        style: 'default',
        format: 'image/jpeg',
        tileMatrixSetID: 'GoogleMapsCompatible',
        show: true
    })
);
blackMarble1.alpha = 0.5;// 透明度 imageryLayer
blackMarble1.brightness = 2.0; // 亮度 imageryLayer
blackMarble2.alpha = 0.5;
blackMarble2.brightness = 2.0;
3、天地图密钥获取以及图层更换官网地址

http://lbs.tianditu.gov.cn/server/MapService.html
https://console.tianditu.gov.cn/api/key
更换图层只需更换对应的"http://t{s}.tianditu.com/cia_w/wmts"

Cesium 加载离线瓦片功能

需要下载网上的瓦片资源到本地服务器使用,保存为谷歌瓦片格式如下:
在这里插入图片描述

const base = '存放离线瓦片的服务器地址'
viewer.imageryLayers.addImageryProvider(new Cesium.UrlTemplateImageryProvider({
     url: `http://${base}/tiles/{z}/{x}/{y}.png`, //服务地址
 }))
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您可以使用Cesium加载离线瓦片地图。下面是一些步骤可以帮助您实现这一目标: 1. 获取离线瓦片地图数据:您可以通过各种方式获取离线瓦片地图数据,例如使用ArcGIS、Mapbox或者其他地图提供商的工具来下载离线瓦片数据。确保您已经获得了包含瓦片图像的文件夹结构。 2. 设置Cesium环境:首先,将Cesium的JavaScript库文件引入到您的项目中。您可以从Cesium官方网站下载Cesium库文件,然后将其包含在您的HTML文件中。 3. 创建Cesium Viewer:在您的JavaScript代码中,创建一个Cesium Viewer实例,这将作为加载和显示地图的容器。 ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); ``` 4. 配置离线地图:使用Cesium的ImageryLayer概念,您可以将自定义的离线瓦片地图添加到Cesium Viewer中。使用`Cesium.createTileMapServiceImageryProvider`函数来创建一个ImageryLayer,指定地图数据的路径。 ```javascript var tileMapService = new Cesium.createTileMapServiceImageryProvider({ url: 'path/to/your/tilemapdata' }); viewer.imageryLayers.addImageryProvider(tileMapService); ``` 请将"path/to/your/tilemapdata"替换为您实际的瓦片地图数据路径。 5. 运行应用程序:保存并运行您的应用程序,您将能够在Cesium Viewer中加载和显示离线瓦片地图。 这些步骤应该能够帮助您加载离线瓦片地图。请注意,具体的实施步骤可能因您选择的离线瓦片地图来源和数据格式而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值