我正在设置一个类似于这样的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
});
然后,我会在地图加载完成后将该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
}
});
});
现在,我有一张地图,它的中心是我在new mapboxgl.Map
中指定的位置,并且缩放级别为13。因此,地图上只显示了部分GeoJSON数据。我想重新调整地图的中心和缩放级别,以便整个GeoJSON数据都能显示出来。
在Mapbox JS中,我将通过将GeoJSON数据加载到featureLayer
中,然后使用以下代码将地图适应其范围:
map.fitBounds(featureLayer.getBounds());
fitBounds文档中指定了Mapbox GL JS希望以[[minLng,minLat],[maxLng,maxLat]]
格式提供边界。
有没有一种方法可以确定此GeoJSON图层的最小/最大纬度和经度值?