Cesium 加载4326切片

Cesium加载4326切片

数据:

geowebcache转发的ArcMap切片

说明:

Cesium加载数据大部分是3857的,遇到4326坐标系的切片,调用WebMapTileServiceImageryProvider始终加载不上。
经过叠加天地图对比查看xyz,发现z始终比切片少一级,用UrlTemplateImageryProvider接口给level+1切片就能出现。

var shadedRelief2 = new Cesium.UrlTemplateImageryProvider({
    url: 'http://10.19.151.72:8080/geowebcache/service/wmts/rest/beijing84/default/EPSG:4326_beijing84/EPSG:4326_beijing84:{myLevel}/{myy}/{myx}?format=image/png',
    customTags: {
        myLevel: function (imageryProvider, x, y, z) {
            console.log(z)
            return z + 1
        },
        myx: function (imageryProvider, x, y, z) {
            return x;
        },
        myy: function (imageryProvider, x, y, z) {
            return y;
        }
    },
    layer: 'beijing84',
    style: 'default',
    format: 'image/png',
    tileMatrixSetID: 'EPSG:4326_beijing84',
    maximumLevel: 19,
    tilingScheme: new Cesium.GeographicTilingScheme({
        ellipsoid: Cesium.Ellipsoid.WGS84,
        numberOfLevelZeroTilesX: 2,
        numberOfLevelZeroTilesY: 1
    }),
});
viewer.imageryLayers.addImageryProvider(shadedRelief2);

猜测4326切片矩阵应该是从1开始而非0开始的,代码改成如下方式即可

var shadedRelief1 = new Cesium.WebMapTileServiceImageryProvider({
    url: 'http://10.19.151.72:8080/geowebcache/service/wmts',
    layer: 'beijing84',
    style: 'default',
    format: 'image/png',
    tileMatrixSetID: 'EPSG:4326_beijing84',
    tileMatrixLabels: [
        'EPSG:4326_beijing84:1', // 这里从1开始
        'EPSG:4326_beijing84:2',
        'EPSG:4326_beijing84:3',
        'EPSG:4326_beijing84:4',
        'EPSG:4326_beijing84:5',
        'EPSG:4326_beijing84:6',
        'EPSG:4326_beijing84:7',
        'EPSG:4326_beijing84:8',
        'EPSG:4326_beijing84:9',
        'EPSG:4326_beijing84:10',
        'EPSG:4326_beijing84:11',
        'EPSG:4326_beijing84:12',
        'EPSG:4326_beijing84:13',
        'EPSG:4326_beijing84:14',
        'EPSG:4326_beijing84:15',
        'EPSG:4326_beijing84:16',
        'EPSG:4326_beijing84:17',
        'EPSG:4326_beijing84:18',
        'EPSG:4326_beijing84:19'
    ],
    maximumLevel: 19,
    // rectangle: Cesium.Rectangle.fromDegrees(117.76672639126905, 31.21670076028837, 120.38660785358883, 32.627095000940194),
    // rectangle: Cesium.Rectangle.fromDegrees(90, 45, 180, 90),
    tilingScheme: new Cesium.GeographicTilingScheme({
        // rectangle: Cesium.Rectangle.fromDegrees(117.76672639126905, 31.21670076028837, 120.38660785358883, 32.627095000940194),
        numberOfLevelZeroTilesX: 2,
        numberOfLevelZeroTilesY: 1
    }),
});
viewer.imageryLayers.addImageryProvider(shadedRelief1);

另外:

我们又试了一下geowebcache直接切片,层级是从0开始

var wmtsprovider = new Cesium.WebMapTileServiceImageryProvider({
    url: 'http://10.19.151.72:8080/geoserver/gwc/service/wmts?',
    layer: "wmts_test:beijing",
    format: 'image/png',
    minimumLevel: 1,
    maximumLevel: 19,
    style: "",
    proxy: new Cesium.DefaultProxy('/proxy/'),
    tileMatrixSetID: 'EPSG:4326',
    tileMatrixLabels: ['EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3', 'EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8', 'EPSG:4326:9', 'EPSG:4326:10', 'EPSG:4326:11', 'EPSG:4326:12', 'EPSG:4326:13', 'EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18', 'EPSG:4326:19', 'EPSG:4326:20', 'EPSG:4326:21'],
    tilingScheme: new Cesium.GeographicTilingScheme({ numberOfLevelZeroTilesX: 2, numberOfLevelZeroTilesY: 1 })
});
viewer.imageryLayers.addImageryProvider(wmtsprovider);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值