我正在使用 Mapbox GL JS 从某些页面上的外部 URL 加载 GeoJSON。我想自动使地图适合我正在加载的多边形的边界。
我知道turf.js 的 bbox 方法可以帮助解决这个问题,但我不确定如何将 GeoJSON 放入turf.bbox
调用中。
这是我现在的代码:
map.addSource('mylayer', {
type: 'geojson',
data: '/boundaries.geojson'
});
map.addLayer({
"id": "mylayer",
"type": "fill",
"source": "mylayer",
'paint': {
'fill-color': '#088',
'fill-opacity': 0.6
}
});
var bbox = turf.bbox('mylayer');
map.fitBounds(bbox, {padding: 20});
但它失败了turf.min.js:1 Uncaught Error: Unknown Geometry Type
。文档说需要bbox
“任何 GeoJSON 对象”。
我该如何正确地做到这一点?我显然宁愿不加载外部文件两次。