缩放和居中地图以适应(气泡)层上的所有特征

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