Android高德地图自定义Mark并实现聚合效果

Android高德地图自定义Mark并实现聚合效果

起因:公司本来项目里面用到了高德地图,然后最近老板看见别人的APP里面有个聚合的这个功能,老板:“这个效果能不能实现,我也要!”没有办法因为以前没有做过高德地图点聚合这个东西,然后只能勉强的答应下来可以,然后就去看了高德开发者平台上面的给我说的点聚合,看完以后(星星你个大星星),能不能写例子,要是像他那个说的那个简单我真的就是谢谢了!没办法只能去下载高德地图提供给我的dome了,然后看了dome以后在dome的基础上面进行改造,然后就出来了。

先看一下效果
在这里插入图片描述
然后我们先看下我们下载下来的高德地图的dome 的结构
在这里插入图片描述
打红的框子的就是高德dome的东西,然后查看他的dome你会发现主要的类ClusterOverlay这个类。
然后我们来分析一下dome里面需要我们改的东西。然后我会被解释写在里面
先看一看这个类的构造

/*
     * amap 地图的对象
     * clusterItems 这个就是数据的集合
     * clusterSize 聚合范围的大小(指点像素单位距离内的点会聚合到一个点显示)
     */

public ClusterOverlay(AMap amap,
                          List<ClusterItem> clusterItems,
                          int clusterSize,
                          Context context) {
   ...}

再看下添加点的方法

/**
     * 将聚合元素添加至地图上
     */
    private void addClusterToMap(List<Cluster> clusters) {
   

        ArrayList<Marker> removeMarkers = new ArrayList<>();
        removeMarkers.addAll(mAddMarkers);

        //点聚合的动画
        AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
        MyAnimationListener myAnimationListener = new MyAnimationListener(removeMarkers);

        for (Marker marker : removeMarkers) {
   
            marker.setAnimation(alphaAnimation);
            marker.setAnimationListener(myAnimationListener);
            marker.startAnimation();
        }

		//便利一下数据类然后开始添加我们的点
        for (Cluster cluster : clusters) {
   
            addSingleClusterToMap(cluster);
        }
    }

 private void addSingleClusterToMap(Cluster cluster) {
   
        MyLoge.addLoge("addSingleClusterToMap", cluster.getClusterItems().get(cluster.getCluster
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值