请问大神如何让android百度地图海量点每个点都加上标题文本并显示。我要的是上万个点加载时显示Marker的标题文本,不是点击后出现文本信息,OverlayOptions的title标题是不能加载直接显示的,而目海量点每个点的文本信息是不一样的。如每个Marker显示"点1","点2","点3",...."点10000"。上万个点都显示标题后OutOfMemoryError,请指点一下。谢谢各位大神的指教,点聚合上万点后卡慢严重!要优化相应的DefaultClusterRenderer源码,我正用聚合与分段显示来解决内存溢出的问题,另外出现一个问题聚合后地图放到最大级,聚合也不分解不开还是聚合状态,大神有知道的吗?
15条回答 默认 最新
关注获得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);希望对你有帮助!
解决 无用评论 打赏 举报 编辑记录