相关疑难解决方法(0)

如何获取mapboxgl.GeoJSONSource对象的边界框?

我正在设置这样的Mapbox GL JS地图:

mapboxgl.accessToken = 'pk.my_token';
var cityBoundaries   = new mapboxgl.GeoJSONSource({ data: 'http://domain.com/city_name.geojson' } );
var map              = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/mapbox/streets-v8',
  center: [cityLongitude,cityLatitude],
  zoom: 13
});
Run Code Online (Sandbox Code Playgroud)

然后我将这样的GeoJSON数据加载到地图上,如下所示:

map.on('style.load', function(){
  map.addSource('city', cityBoundaries);
  map.addLayer({
    'id': 'city',
    'type': 'line',
    'source': 'city',
    'paint': {
      'line-color': 'blue',
      'line-width': 3
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

此时,我有一个以我指定的位置为中心的地图new mapboxgl.Map,并且它处于缩放级别13.因此,地图上只能看到一块GeoJSON数据.我想重新居中并重新缩放地图,以便可以看到整个GeoJSON数据.

在Mapbox JS中,我会通过将GeoJSON数据加载到a featureLayer然后将地图拟合到其边界来实现:

map.fitBounds(featureLayer.getBounds());
Run Code Online (Sandbox Code Playgroud)

Mapbox GL JS 的fitBounds文档表明它需要格式为的边界[[minLng, minLat], [maxLng, maxLat]].

有没有办法确定此GeoJSON图层的混合/最大纬度和经度值?

mapbox mapbox-gl-js

5
推荐指数
2
解决办法
6205
查看次数

标签 统计

mapbox ×1

mapbox-gl-js ×1