baobao9710 2023-09-25 05:49 采纳率: 0%
浏览 35
已结题

android百度地图SDK海量点显示标题

请问大神如何让android百度地图海量点每个点都加上标题文本并显示。我要的是上万个点加载时显示Marker的标题文本,不是点击后出现文本信息,OverlayOptions的title标题是不能加载直接显示的,而目海量点每个点的文本信息是不一样的。如每个Marker显示"点1","点2","点3",...."点10000"。上万个点都显示标题后OutOfMemoryError,请指点一下。谢谢各位大神的指教,点聚合上万点后卡慢严重!要优化相应的DefaultClusterRenderer源码,我正用聚合与分段显示来解决内存溢出的问题,另外出现一个问题聚合后地图放到最大级,聚合也不分解不开还是聚合状态,大神有知道的吗?

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-09-25 07:25
    关注
    获得0.90元问题酬金

    此回复引用 皆我百晓生 小程序,希望对题主有所帮助,如有帮助,还请采纳。


    要在Android百度地图SDK中实现海量点显示标题,可以使用自定义的Marker来代替默认的Marker图标,并通过设置MarkerOptions的title属性来设置标题文本。具体步骤如下:

    1.迭代遍历每个点并创建Marker对象,并设置标题文本。

    List<LatLng> pointList = new ArrayList<>(); // 存放点的经纬度列表
    
    // 创建OverlayOptions列表,用于存放MarkerOptions
    List<OverlayOptions> markerOptionsList = new ArrayList<>();
    for (LatLng point : pointList) {
        // 创建MarkerOptions对象
        MarkerOptions markerOptions = new MarkerOptions()
            .position(point)
            .title("标题文本"); // 设置标题文本
    
        // 将MarkerOptions对象添加到列表中
        markerOptionsList.add(markerOptions);
    }
    

    2.批量添加MarkerOptions列表到地图上。

    // 创建OverlayOptions列表,用于存放Marker
    List<Marker> markerList = mBaiduMap.addOverlays(markerOptionsList);
    

    3.控制显示的Marker数量,以避免OutOfMemoryError。可以使用聚合技术,例如百度地图的Marker聚合功能,将多个Marker合并显示为一个聚合Marker。这样可以减少地图上显示的Marker数量。

    // 启用Marker聚合功能
    ClusterManager<MyItem> clusterManager = new ClusterManager<>(context, mBaiduMap);
    mBaiduMap.setOnMarkerClickListener(clusterManager);
    mBaiduMap.setOnMapStatusChangeListener(clusterManager);
    

    希望对你有帮助!

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 修改了问题 9月28日
  • 修改了问题 9月27日
  • 修改了问题 9月25日
  • 展开全部