有没有可能为Mapbox GL地图设置“最大允许俯仰角”?

4

我找不到一种方法来防止用户设置地图的俯仰角度过大。我正在使用高分辨率天气数据,因此我想防止他们将俯仰角度调整得过于极端以至于可以看到远离所需区域的地方。这使我处于一个境地:要么扩展数据(将使用太多带宽),要么在那里不显示它,使其变得丑陋。我不想完全消除俯仰能力,因为它有助于可视化。

我已经尽我所能在文档中寻找信息,但由于我找不到信息,也没有代码片段可供尝试,因此我无从下手。例如,是否有任何方法只允许用户向上倾斜到一定程度? 我制作了一个示例图像,其中左侧的俯仰角度是可以接受的,但右侧不行,因为在当前缩放级别下,它会让他们看到太远的地方。如果不可能实现这一点,我可以考虑其他替代方法,如果有的话。

样本

2个回答

4

现在,您可以向Map构造函数传递一个maxPitch选项。从Mapbox GL JS 2.0.0版本开始,您可以将其设置为非常高的值,最高可达85°:

let MAX_PITCH = 85

new mapboxgl
  .Map({
    container: 'map',
    // ...
    pitch: MAX_PITCH,
    maxPitch: MAX_PITCH,
  });

3
使用 render 事件来检查角度的值:
map.on('render', (e) => {
  if (e.target.getPitch() > MAX_PITCH) e.target.setPitch(MAX_PITCH)
})

[ https://jsfiddle.net/05o4e7dr/ ]


@David 平滑返回有效值的示例 - https://jsfiddle.net/n8y2c1zb/ - stdob--
谢谢!超出了我的原始问题,这是一个非常不错的体验。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接