android項目中實現百度地圖中點聚合功能

最近公司的一個項目上需要在百度地圖上實現點位聚合的功能,首先第一想到的就是去百度地圖開發的官網上下載官方的Demo



我使用的開發工具是Android Studio,解壓安裝包後,通過Android Studio打開工程BaiduMapsApiASDemo,工程名稱中有AS表示是Android Studio的工程,並在虛擬機上執行一遍,找到點聚合功能,並查看效果



然後去工程中查看相關源代碼,並移植到自己的項目工程中去

分析源代碼之後,才發現MarkerClusterDemo類中引用的ClusterManager等類並不在官網下載的jar包中,最後發現是在工程文件中


要想實現和官方Demo相同的點聚合效果,就需要把這兩個文件也拷貝到自己的項目工程中,經過實驗發現,不僅僅拷貝過去就能使用的,原則就是缺少什麼就把什麼拷貝到自己工程的相應位置

首先,需要修改兩個類中引入的R文件的路徑,修改成自己的 import 自己的package.R即可

1. com.baidu.mapapi.clusterutil.ui.IconGenerator

2. com.baidu.mapapi.clusterutil.clustering.view.DefaultClusterRenderer

第二,將styles.xml文件中的相關部分拷貝過來

第三,將layout文件夾中的text_bubble.xml文件拷貝過來

然後參照MarkClusterDemo代碼實現自己的類,需要注意的是自己項目中的marker類需要實現ClusterItem接口,具體參照官方Demo

自己項目中實現的點位聚合的效果圖如下:(4000+個點位聚合效果)比較流暢,沒有卡頓



自己也把clusterutil和overlayutil完整的提取出來放到一個空的工程中,方便以後使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章