如何在群集单击事件上缩放Azure地图边界框?

如何在群集单击事件上缩放Azure地图边界框?,azure,bing-maps,azure-maps,Azure,Bing Maps,Azure Maps,Azure Maps中的数据源可以在特定半径内聚集点要素(PIN)。当此类簇上发生单击事件时,我希望将边界框重置为簇所代表的区域,并放大以显示簇内的各个管脚 使用谷歌地图,您可以将集群的默认行为设置为单击时自动缩放。这一特点在旧系统中也相对容易实现。如何在Azure Maps中添加此功能而不使用大量JavaScript?事实上,Azure Maps似乎不直接支持此功能,可以考虑以下方法: 单击“我们”图层后,事件将返回目标对象的像素位置以及其他属性。然后通过atlas.Map.pixelsToP

Azure Maps中的数据源可以在特定半径内聚集点要素(PIN)。当此类簇上发生单击事件时,我希望将边界框重置为簇所代表的区域,并放大以显示簇内的各个管脚


使用谷歌地图,您可以将集群的默认行为设置为单击时自动缩放。这一特点在旧系统中也相对容易实现。如何在Azure Maps中添加此功能而不使用大量JavaScript?

事实上,Azure Maps似乎不直接支持此功能,可以考虑以下方法:

单击“我们”图层后,事件将返回目标对象的像素位置以及其他属性。然后通过
atlas.Map.pixelsToPositions函数确定簇圆的
min
max
坐标:

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)],
        ]);            
然后通过以下方式确定簇泡内可能包含管脚的区域边界:

最后设置贴图视口:

 map.setCamera({
          bounds: bounds,
          padding:0
        }); 

这里是供您参考的

这里是另一个演示,也是这样做的:它使用getClusterExpansionZoom函数来获得集群分解所需的缩放级别。这里是指向我链接到的示例的实时版本的链接:
 map.setCamera({
          bounds: bounds,
          padding:0
        });