【问题标题】:Is it possible to generate extent from VectorTiles source?是否可以从 VectorTiles 源生成范围?
【发布时间】:2023-02-24 04:43:33
【问题描述】:

我正在构建一个应用程序,用户可以在其中上传矢量图块格式的任何地图。这些地图通常很小,我想限制缩放和平移,因此用户视图将始终在地图范围内。

我不知道上传地图的范围。我在 layer/VectorTile、source/VectorTile 和 View 中尝试了多种方法,但据我所知,我需要先定义 extent 才能使其工作。

有什么方法可以根据矢量源中要素的边缘坐标生成范围吗?我正在使用 OpenLayers v7.2.2

【问题讨论】:

  • 请参阅How to Ask。您需要显示一些代码。

标签: openlayers openlayers-7


【解决方案1】:

简短的回答,没有。

矢量切片中的要素使用相对于矢量切片原点的坐标,通常在 [4096, 4096] 范围内。矢量切片本身并不知道它的坐标。如果您不知道 tileset 的范围,则无法解码信息。

定义矢量瓦片集范围的三个元素:最左边的经度、最上面的纬度以及最左边的经度和最右边的经度之间的距离。由于所有矢量图块都是方形的,并且它们使用 2 倍缩放级别的幂,这应该允许您计算其他所有内容。

如果您自己生成矢量切片,我建议您始终使用 Web Mercator 3857 的经典世界范围:

tile_dimension_zoom_0: 20037508.34 * 2,
tile_origin_upper_left_x: -20037508.34,
tile_origin_upper_left_y: 20037508.34

然后,您将拥有从 500 到 505 而不是 0 到 5 的图块。

如果您使用的是其他人的图块,而您不知道这三个数字,则无法对这些图块进行地理配准。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多