You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sharewire/google-maps-clustering库实现onClusterClick后地图缩放的问题

解决sharewire/google-maps-clustering库中Cluster点击缩放地图的问题

别担心,这个问题很好解决!虽然这个库的Cluster类没有提供直接的getPosition()方法,但它给出的getLatitude()和getLongitude()已经足够我们实现地图缩放功能了——我们只需要用这两个值手动创建一个LatLng对象就行。

具体实现代码

你可以把原来的代码改成这样:

@Override
public boolean onClusterClick(final Cluster<MyItem> cluster) {
    // 用cluster的经纬度创建LatLng对象
    LatLng clusterPosition = new LatLng(cluster.getLatitude(), cluster.getLongitude());
    
    // 和官方库一样的方式执行缩放动画
    map.animateCamera(
        CameraUpdateFactory.newLatLngZoom(
            clusterPosition,
            (float) Math.floor(map.getCameraPosition().zoom + 1)
        ),
        300,
        null
    );
    
    return true; // 表示事件已被处理,不再传递给其他监听器
}

原理说明

这个思路和你用官方库的逻辑完全一致,只是多了一步从Cluster的经纬度构建LatLng对象的操作。因为newLatLngZoom()方法需要的就是一个LatLng类型的参数,所以只要我们把Cluster的位置信息转换成这个类型,就能顺利调用地图的缩放动画了。

内容的提问来源于stack exchange,提问作者Max Yablonskyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:15:33