Openlayers 当WMTS getCapabilities TileMatrix集未列出低缩放级别TileMatrix';s

Openlayers 当WMTS getCapabilities TileMatrix集未列出低缩放级别TileMatrix';s,openlayers,geoserver,ogc,Openlayers,Geoserver,Ogc,运行OL版本6.4.3 我正在与WMTS服务交互,该服务具有如下TileMatrix集: <TileMatrixSet> <ows:Title>GoogleMapsCompatible</ows:Title> <ows:Abstract>GoogleMapsCompatible EPSG:3857</ows:Abstract> <ows:Identifier>GoogleMapsCompatible</ow

运行OL版本6.4.3

我正在与WMTS服务交互,该服务具有如下TileMatrix集:

<TileMatrixSet>
  <ows:Title>GoogleMapsCompatible</ows:Title>
  <ows:Abstract>GoogleMapsCompatible EPSG:3857</ows:Abstract>
  <ows:Identifier>GoogleMapsCompatible</ows:Identifier>
  <ows:SupportedCRS>urn:ogc:def:crs:EPSG::3857</ows:SupportedCRS>
然后缩小到较低的缩放级别。这不会模拟确切的场景,因为示例代码中的
Demographics/USA\u Population\u Density
服务是全局的。也许你可以修改一下范围


如果答案是我需要回击服务提供商不符合规范/标准,这是可以接受的答案。特别是如果我可以网站这样的标准。或者,如果有一个getCapabilities属性,服务提供商可以设置openlayers(或我的应用程序代码)可以读取以设置minzoom,我认为这也是一个可以接受的答案。

设置maxResolution比设置minzoom更容易

如果使用optionsFromCapabilities,则可以获得平铺网格中使用的最大分辨率

        var source = new ol.source.WMTS(options);
        var layer = new ol.layer.Tile({
            source: source,
            maxResolution: options.tileGrid.getResolution(0)
        });

如果希望允许1或2个额外的缩放级别超过2或4,则乘以2或4。如果矩阵集为3857,则可以使用该缩放级别,但如果矩阵集为4326,则无法按预期使用该缩放级别。对那个案子有什么想法吗?我能够从options.tileGrid.getFullTilerage(0)中导出最小缩放,这似乎适用于任何CRS。
var resolutions = new Array(4);
var matrixIds = new Array(4);
for (var z = 10; z < 14; ++z) {
        var source = new ol.source.WMTS(options);
        var layer = new ol.layer.Tile({
            source: source,
            maxResolution: options.tileGrid.getResolution(0)
        });