缩放和居中地图以适应(气泡)层上的所有特征
Zoom and center map to fit all features on (bubble) layer
我有一个网站从服务器端获取一组点,然后使用 azure-maps-control
npm 包渲染地图。
我希望地图以适合屏幕上所有点的方式居中和缩放。
实现此目标的最佳方法是什么?
首先为您的点计算一个边界框。如果您有一个点要素数组或 atlas.Shape 个对象,请使用 atlas.data.BoundingBox.fromData,如果您有一个位置数组,请使用 atlas.data.BoundingBox.fromPositions.
从那里您可以在加载地图时将其粘贴到地图选项中,或者使用地图 setCamera 更新地图视图。在这两种情况下,您都将其传递给 bounds
选项。此外,由于您使用的是点数据,因此边界框将基于坐标并且不会考虑图标的像素大小。为此,请使用 padding
选项在边界框周围添加像素缓冲区。例如:
map.setCamera({
bounds: atlas.data.BoundingBox.fromData(featureArray),
padding: 50
});
示例库中的很多示例都使用此方法:https://azuremapscodesamples.azurewebsites.net/index.html
我有一个网站从服务器端获取一组点,然后使用 azure-maps-control
npm 包渲染地图。
我希望地图以适合屏幕上所有点的方式居中和缩放。
实现此目标的最佳方法是什么?
首先为您的点计算一个边界框。如果您有一个点要素数组或 atlas.Shape 个对象,请使用 atlas.data.BoundingBox.fromData,如果您有一个位置数组,请使用 atlas.data.BoundingBox.fromPositions.
从那里您可以在加载地图时将其粘贴到地图选项中,或者使用地图 setCamera 更新地图视图。在这两种情况下,您都将其传递给 bounds
选项。此外,由于您使用的是点数据,因此边界框将基于坐标并且不会考虑图标的像素大小。为此,请使用 padding
选项在边界框周围添加像素缓冲区。例如:
map.setCamera({
bounds: atlas.data.BoundingBox.fromData(featureArray),
padding: 50
});
示例库中的很多示例都使用此方法:https://azuremapscodesamples.azurewebsites.net/index.html