高德地图开发Android 地图SDK开发指南在地图上绘制—绘制海量点图层

高德地图开发Android 地图SDK开发指南在地图上绘制—绘制海量点图层

绘制海量点图层 最后更新时间: 2021年01月22日

简介

应用于移动端的海量点图层用于批量展现具有相似属性的坐标点数据。海量点图层支持处理的点数量级跨度较大,从几十个点至十万个点(建议不超过100000个点数据)都可以应用海量点图层进行处理。该功能自 Android 地图 SDK 5.1.0版本起支持。

如下图所示的处理上万个点的海量点图层效果:

展示海量点

第 1 步 设置海量点属性

Java

MultiPointOverlayOptions overlayOptions = new MultiPointOverlayOptions();    
overlayOptions.icon(bitmapDescriptor);//设置图标     
overlayOptions.anchor(0.5f,0.5f); //设置锚点

第 2 步 添加海量点获取管理对象

Java

MultiPointOverlay multiPointOverlay = aMap.addMultiPointOverlay(overlayOptions); 

第 3 步 读取数据并通过海量点管理对象设置

此步推荐使用二进制文件对数据进行存储,提升数据加载效率。二进制文件构造和加载的详情可以参考官方示例代码

Java

List<MultiPointItem> list = new ArrayList<MultiPointItem>();
    while(...) {
        ...
        //创建MultiPointItem存放,海量点中某单个点的位置及其他信息
        MultiPointItem multiPointItem = new MultiPointItem(latLng);
        list.add(multiPointItem);
    }
    multiPointOverlay.setItems(list);//将规范化的点集交给海量点管理对象设置,待加载完毕即可看到海量点信息

海量点点击事件

Java

// 定义海量点点击事件
    AMap.OnMultiPointClickListener multiPointClickListener = new AMap.OnMultiPointClickListener() {
      // 海量点中某一点被点击时回调的接口
      // 返回 true 则表示接口已响应事件,否则返回false
      @Override
      public boolean onPointClick(MultiPointItem pointItem) {
        return false;
      }
    };
    // 绑定海量点点击事件
    aMap.setOnMultiPointClickListener(multiPointClickListener);