【问题标题】:On a Mapbox map, how to keep a layer always visible, no matter the zoom level?在 Mapbox 地图上,无论缩放级别如何,如何保持图层始终可见?
【发布时间】:2022-12-10 01:11:36
【问题描述】:

我试图了解图块级别的数据显示处理的基本机制,但我没有找到任何足够明确的文献让我理解它是如何工作的。

不过我有一个简单的需求:让一层符号始终可见。

我已经测试了很长时间的这些属性: 'icon-allow-overlap': true, icon-ignore-placement': true, 文本允许重叠':是的, 文本忽略放置':true 我还尝试使用图层和源顺序、缩放级别的可见性……但我的印象是内部工作超载了所有这些并接管了我的陈述。

我想这与图块加载的数据有关......但我无法进一步理解“问题”。

我对任何可以帮助我理解 Mapbox 在这方面的工作原理的解释或链接(或示例!)感兴趣。

【问题讨论】:

    标签: javascript dictionary documentation mapbox-gl-js layer


    【解决方案1】:

    如果您的数据位于矢量切片源中,切片中的数据可用性会限制您控制符号可见的缩放级别的能力。主要原因是当您在缩放范围之外缩放时,矢量切片图层中的数据可用,但数据变得不可用。如果您控制矢量切片源,则可以使数据在矢量切片的所有缩放级别中可用,但请注意,如果在完全缩小时有大量点,这可能会产生问题。

    如果数据是通过 GeoJSON 源加载的,那么您可以使用您提到的四个图标/文本选项使符号始终出现在所有缩放级别上。

    如果您正在使用矢量切片并且无法控制切片,您可能会进行黑客攻击,从矢量切片中捕获数据并将数据存储在 geojson 源中。您将使用隐藏层加载矢量切片(使事物透明或不可见,以便仍然请求切片),然后随着地图移动,从该源检索可视地图区域中的所有几何图形。理想情况下,您将拥有一个可用于跟踪几何图形的唯一标识符,这样您就不会多次存储/捕获相同的几何图形。请注意,如果几何图形是在缩小时从矢量图块中捕获的,则位置的准确性可能会很低,因为坐标会在该缩放级别捕捉到像素,因此您可能会跟踪几何图形的缩放级别捕获在,如果您稍后在放大更多时再次遇到相同的几何体,您可以相应地替换几何体坐标以提高其精度。这将需要相当数量的代码才能正常工作,但如果您没有其他选择,这应该是可行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-07
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 2016-03-26
      • 2023-01-13
      • 2014-09-07
      相关资源
      最近更新 更多