Azure Maps 中的数据源可以对特定半径内的点要素(图钉)进行聚类。当此类集群上发生点击事件时,我想将我的边界框重置为集群表示的区域并放大以显示集群中的各个引脚。
使用 Google 地图,您可以将集群的默认行为设置为单击时自动缩放。这个功能在旧的Bing Maps API中也相对容易实现。如何在没有大量 JavaScript 的情况下在 Azure Maps 中添加此功能?
Azure Maps 中的数据源可以对特定半径内的点要素(图钉)进行聚类。当此类集群上发生点击事件时,我想将我的边界框重置为集群表示的区域并放大以显示集群中的各个引脚。
使用 Google 地图,您可以将集群的默认行为设置为单击时自动缩放。这个功能在旧的Bing Maps API中也相对容易实现。如何在没有大量 JavaScript 的情况下在 Azure Maps 中添加此功能?
实际上,Azure Maps 似乎不直接支持它,可以考虑以下方法:
单击图层后,event
将返回目标对象的像素位置以及其他属性。然后通过 确定簇圆的min
坐标:max
atlas.Map.pixelsToPositions function
const coordinates = e.map.pixelsToPositions([
[e.pixel[0] + (clusterRadius*2), e.pixel[1] + (clusterRadius*2)],
[e.pixel[0] - (clusterRadius*2), e.pixel[1] - (clusterRadius*2)],
]);
atlas.data.BoundingBox.fromPositions
然后通过函数确定可能包含集群气泡内引脚的区域边界:
const bounds = atlas.data.BoundingBox.fromPositions(coordinates);
最后设置地图视口:
map.setCamera({
bounds: bounds,
padding:0
});
这是一个演示供您参考