是否可以为Mapbox GL地图设置“最大允许间距”?

时间:2018-12-25 11:29:26

标签: mapbox-gl-js

我无法找到一种方法来防止用户将地图的俯仰角设置得太大。我正在使用高分辨率天气数据,因此我想防止他们将俯仰设置得太高,以至于他们看不到预期的区域。这使我可以扩展数据(将使用过多带宽),或者只是不在那里显示数据,这使它很难看。我不想完全消除音调功能,因为它有助于可视化。

我在文档中尽我所能,但是由于找不到信息,甚至没有代码段,因此我尝试了,因为我无处可寻。有什么方法(例如)让用户仅在一定程度上进行宣传吗?我制作了一个示例图像,其中左间距可以,但右间距不可以,因为在当前的缩放级别下,它会使他们看到的距离太远。如果无法做到这一点,我可以选择其他方法。

sample

2 个答案:

答案 0 :(得分:1)

使用render事件检查角度值:

map.on('render', (e) => {
  if (e.target.getPitch() > MAX_PITCH) e.target.setPitch(MAX_PITCH)
})

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

答案 1 :(得分:1)

现在有一个 maxPitch 选项可以传递给 Map 构造。而且,从 Mapbox GL JS 2.0.0 开始,您可以将其设置为相当高的值,一直到 85°:

let MAX_PITCH = 85

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