在带有 Mapbox 的 Geoserver 上使用 wmts 时平铺超出范围错误

问题描述 投票:0回答:1

我想使用

geoserver
WMTS
渲染一个层。
我正在使用
mapbox-gl
来渲染地图和图层。

我指的网站是

https://docs.geoserver.org/stable/en/user/styling/mbstyle/source.html
。 这显示了如何在地理服务器上创建一个图层并将其呈现在 mapbox 地图上。

但是,当我请求 tiles 时出现错误

TileOutOfRange

例如,当我用这个 url 请求瓷砖时,

http://<my_server>:8080/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=myspace:japan&STYLE=&TILEMATRIX=EPSG:4326:8&TILEMATRIXSET=EPSG:4326&FORMAT=application/vnd.mapbox-vector-tile&TILECOL=221&TILEROW=102
.

我收到此错误消息。

Column 221 is out of range, min: 440 max:462
.

下面是我的代码,用于获取我在地理服务器上创建的图层。

map.on("load", () => {
        map.addSource("test", {
            type: "vector",
            tiles: ["http://<my_server>:8080/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER=myspace:japan&STYLE=&TILEMATRIX=EPSG:4326:{z}&TILEMATRIXSET=EPSG:4326&FORMAT=application/vnd.mapbox-vector-tile&TILECOL={x}&TILEROW={y}"],
            generateId: true,
            minZoom: 0,
            maxZoom: 14,
        });
    
        map.addLayer({
            "id": "test",
            "type": "fill",
            "source": "test",
            "source-layer": "japan",
            "layout": { "visibility": "visible" },
            "paint": {}
            
        });
    });

如果有人给我解决这个问题的方法,我将不胜感激。
谢谢。

  • 我确定我在磁贴缓存设置中选中了这个框

    application/vnd.mapbox-vector-tile

  • 我在默认网格设置中省略了 900913,因为我的数据是 EPSG:4326。

  • 创建图层时,我确保单击

    Compute from data
    Compute from native bounds
    来设置边界框。

mapbox gis layer geoserver wms
1个回答
0
投票

he

TileOutOfRange
错误通常发生在请求的切片坐标落在切片缓存中的可用切片范围之外时。在您的情况下,您请求的列值似乎超出范围。

您可以采取以下几个步骤来排除故障和解决问题:

检查

tile cache settings:
确保
caching
中的磁贴
GeoServer
设置已正确配置。验证最大和最小缩放级别以及图块矩阵集是否已正确设置以适应您请求的图块范围。

Verify tile matrix set configuration:
确认瓦片矩阵
set (EPSG:4326) in GeoServer
的配置与
Mapbox
地图中使用的瓦片矩阵集相匹配。确保 tile
matrix
名称及其各自的比例、tile 大小和网格大小在
GeoServer
和您的客户端应用程序之间保持一致。

确认可用瓦片:仔细检查瓦片缓存中的可用瓦片。您可以通过检查 GeoServer 安装中的切片缓存目录并验证您请求的切片是否存在来执行此操作。如果切片丢失或不完整,您可能需要重新生成切片缓存或重新配置缓存设置。

检查瓦片坐标范围:确保您请求的瓦片坐标

(TILECOL and TILEROW)
在您使用的瓦片矩阵集和缩放级别的有效范围内。列值和行值应在图块矩阵集配置指定的范围内。

验证

data and bounds
设置:在
GeoServer
中查看图层的数据和边界设置。确保边界框和本机边界设置正确以包含数据的范围。不正确的边界设置会导致生成图块时出现问题。

清除切片缓存:如果您对图层或切片缓存设置进行了更改,可能需要清除 GeoServer 中的切片缓存以确保更改生效。您可以通过 GeoServer Web 界面或手动删除缓存文件来执行此操作。

通过仔细检查和调整上述设置,您应该能够解决

TileOutOfRange
错误并成功请求并显示您的
Mapbox map.

中的磁贴
© www.soinside.com 2019 - 2024. All rights reserved.