我正在设置这样的 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 数据加载到 afeatureLayer
然后将地图拟合到其边界来做到这一点:
map.fitBounds(featureLayer.getBounds());
Mapbox GL JS的fitBounds 文档[[minLng, minLat], [maxLng, maxLat]]
表明它需要.
有没有办法确定这个 GeoJSON 层的混合/最大纬度和经度值?