如何根据其bbox坐标计算位置的长/宽

时间:2019-03-18 13:45:56

标签: mapbox

请问有人可以帮忙吗?

我需要使用map.toFly()方法在2个位置之间进行插值。

根据Mapbox文档,我需要传递一个描述我要飞往的目的地的对象。该对象必须具有一个center属性,该属性包含一个数组,该数组的中心是我要到达的目的地的经纬度坐标。

https://docs.mapbox.com/mapbox-gl-js/example/flyto/

我实现该方法的问题是,我只有两个需要插值的位置的边界框坐标。我不能做这样的事情: map.flyTo(bbox)

有人知道如何获得 center每个位置的长/纬度坐标基于其bbox坐标?

1 个答案:

答案 0 :(得分:1)

假设您有2个LngLatBounds对象,则可以调用getCenter()方法。

var point1 = bounds1.getCenter();
var point2 = bounds2.getCenter();

其中bounds1bounds2都是类型LngLatBounds的对象。

检查: https://docs.mapbox.com/mapbox-gl-js/api/#lnglatbounds#getcenter

编辑:对于您在注释中给出的值,它将是第一个边界:

var sw1 = new mapboxgl.LngLat(110.2672863, -7.1144639);
var ne1 = new mapboxgl.LngLat(110.5088836, -6.9319917);
var bounds1 = new mapboxgl.LngLatBounds(sw1, ne1);

注意:Mapbox GL使用经度,纬度坐标顺序(与纬度,经度相对)。