cesium加载wms wmts tms服务和加载xyz切片

1 篇文章 0 订阅
1 篇文章 0 订阅

 1加载tms服务

// 添加TMS切片图层
viewer.imageryLayers.addImageryProvider(new Cesium.UrlTemplateImageryProvider({
    url : 'https://example.com/tms/{z}/{x}/{y}.png'
}));

 tip:

 如果tms不是标准的服务的话,可以在https://example.com/tms/{z}/{x}/{-y}.png  y的前面加个负号试试,因为加载xyz切片有些区别主要是cesium只能加载xyz服务 而xyz和tms服务的区别在于一个

起点在左上角 一个在左下角,所以他们的转换就是在y坐标加负号(个人理解)

2加载wms服务

   viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({
            url : 'https://example.com/wms',
            layers : 'layerName',
            parameters : {
                service : 'WMS',
                format : 'image/png',
                transparent : true
            }
        }));
  • url:WMS服务的URL。
  • layers:要显示的图层名称。
  • parameters:附加的参数,如serviceformattransparent

 3加载wmts服务

       // 添加WMTS图层
        viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
            url : 'https://example.com/wmts',
            layer : 'layerName',
            style : 'default',
            format : 'image/png',
            tileMatrixSetID : 'EPSG:3857',
            maximumLevel : 18
        }));
  • url:WMTS服务的URL。
  • layer:WMTS图层名称。
  • style:样式名称。
  • format:图像格式,例如image/png
  • tileMatrixSetID:瓦片矩阵集的ID,通常是坐标参考系统(CRS),如EPSG:3857
  • maximumLevel:最大缩放级别。

需要把wmts的url中的{TileMatrix}改为{TileMatrixSet}:{TileMatrix}

4加载xyz 

 // 添加XYZ切片图层
        viewer.imageryLayers.addImageryProvider(new Cesium.UrlTemplateImageryProvider({
            url : 'https://example.com/xyz/{z}/{x}/{y}.png'
        }));

5加载geojson服务

// 创建GeoJsonDataSource实例
        const geoJsonDataSource = new Cesium.GeoJsonDataSource();

        // 加载GeoJSON数据
        geoJsonDataSource.load('https://example.com/data.geojson').then(function() {
            viewer.dataSources.add(geoJsonDataSource);

6再补充一个加载3dtiles 的方法
 

tip:好像新版本换了个方法在此案例后面 

const set3Dtitle3 = () => {
  let translation = Cesium.Cartesian3.fromArray([0, 0, 0]);
  let m = Cesium.Matrix4.fromTranslation(translation);
  const url = "http://data.mars3d.cn/3dtiles/max-fsdzm/tileset.json";
  let tilesetJson = {
    url,
    modelMatrix: m,
    show: true, // 是否显示图块集(默认true)
    skipLevelOfDetail: true, // --- 优化选项。确定是否应在遍历期间应用详细级别跳过(默认false)
  };
  const tileset = new Cesium.Cesium3DTileset(tilesetJson);
  viewer.flyTo(tileset);
  // 异步加载
  tileset.readyPromise
    .then(function (tileset) {
      viewer.scene.primitives.add(tileset);
    })
    .catch(function (error) {
      console.log(error);
    });
  tileset.allTilesLoaded.addEventListener(function () {
    console.log("模型已经全部加载完成");
  });
}

如下是新版本方法(应该实在 1.107 版本之后,具体不确定都可以试试哪种方法可以加载) 

//新版本方法
const tileset = await Cesium.Cesium3DTileset.fromUrl('http://localhost:3333/data/tileset.json');
        viewer.scene.primitives.add(tileset);
        
        // Optional: Adjust the camera to view the tileset
        viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值