Cesium加载WMTS服务,4326和3857

发布于:2022-10-19 ⋅ 阅读:(471) ⋅ 点赞:(0)

在Cesium.WebMapTileServiceImageryProvider 支持这两种tilingScheme加载,主要由以下两个参数控制:

1. 3857

this._tilingScheme = new Cesium.WebMercatorTilingScheme({
    numberOfLevelZeroTilesX : 1,
    numberOfLevelZeroTilesY : 1
});

2. 4326

this._tilingScheme = new Cesium.GeographicTilingScheme({
     numberOfLevelZeroTilesX: 2,
     numberOfLevelZeroTilesY: 1
});

3.例如加载geoserver发布的WMTS服务,4326坐标系,

var _matrixIds = new Array(22);
for (var z = 0; z < _matrixIds.length; ++z) {
  _matrixIds[z] = "EPSG:4326" + ":" + z;
}

var wmtsImageryProvider = new Cesium.WebMapTileServiceImageryProvider({
        url: `${mapConfig.geoserver}/gwc/service/wmts?authKey=${mapConfig.authKey}`,
        layer: "zjd:ZRZ",
        style: "",
        format: "image/png8",
        tileMatrixSetID: "EPSG:4326",
        tileMatrixLabels: _matrixIds,
        tilingScheme: new Cesium.GeographicTilingScheme({
            numberOfLevelZeroTilesX: 2,
            numberOfLevelZeroTilesY: 1
        })
});
viewer.imageryLayers.addImageryProvider(wmtsImageryProvider);

 

 !!!默认情况下,加载3857坐标系的切片,只能访问使用EPSG:900913(标准名为EPSG:3875)网格切分的瓦片

this._tilingScheme = new Cesium.GeographicTilingScheme({
        numberOfLevelZeroTilesX: 2,
        numberOfLevelZeroTilesY: 1
});

当将tileMatrixSetID设置为 'EPSG:4326',想要对于另外一个常用的EPSG:4326网络的瓦片进行访问时,浏览器会报一个瓦片“列(或行)超出范围”的错误,不能正确加载显示瓦片图像。究其原因是因为,WebMapTileServiceImageryProvider的切片方案tilingScheme默认使用EPSG:3875投影,即伪墨卡托网格访问切片,与EPSG:4326网格的切片方案存在较大差异,故而无法正确访问。那么什么又是tilingScheme切片方案呢?
 

1. TilingScheme
Tiling是一种椭球体表面上的几何图形或图像的平铺方案。在详细级别为0,即最粗、最不详细的级别上,瓦片的数量是可配置的。在详细级别为1级以上,每个是一级级瓦片经纬两个方向上扩展为两个瓦片,共有四个子瓦片。如此扩展到最大的缩放级别,这也构成了一个图像瓦片的金字塔。TillingScheme有一个参数ellipsoid用来决定切处时使用的椭球,另外两个比较重要的参数numberOfLevelZeroTilesX和numberOfLevelZeroTilesY,用来决定0级瓦片的数量。

TilingSchemee有两个子类,为WebMercatorTilingScheme和GeographicTilingScheme。其中WebMercatorTilingScheme对应于EPSG:3857切片方案,常见于谷歌地图、微软必应地图以及大多数的ArcGIS在线地图,也是Cesium中默认的切片方案。

GeographicTilingScheme对应于EPSG:4326切片方案,是一个简单的地理投影方案,可直接将经纬度映射为X和Y,这种投影通常被称为地理投影、等矩形投影、等距圆柱形投影等。

由于在X方向上,WebMercatorTilingScheme只有一个0级瓦片,而GeographicTilingScheme却有2个,这就导致了默认的EPSG:3857切片方案不能正确加载EPSG:4326切片方案的瓦片图像。

参考文章:cesium 加载 geoserver wmts 服务 - Geography爱好者 - 博客园

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到