Android-百度地圖自定義多氣泡覆蓋物

這個技術(shù)前幾年是挺火的,現(xiàn)在也幾乎很少app會用到了,但是類似的都可以參考的。


大概和上面的展示一樣,要實現(xiàn)多個氣泡覆蓋物,而且點擊時候怎么判斷是點擊哪幾個呢?或者獲取某個信息呢?。?/p>


大家都知道上面是點擊marker的點擊方法,那么marker怎么區(qū)分呢??下面我們一起來解決這個問題!

首先:我們要自定義一個氣泡的xml,想必上邊的氣泡xml應(yīng)該比較簡單,我這里就不實現(xiàn)了,就用textview來代替

TextView textView = new TextView(getContext());

textView.setText("自定義的覆蓋物");

textView.setTextSize(16);

//將View轉(zhuǎn)換為BitmapDescriptor

BitmapDescriptor descriptor =? BitmapDescriptorFactory.fromView(textView);


在這我還得強調(diào)下: BitmapDescriptor 除了fromView()這個方法之后,百度api 還提供有fromResource(R.drawable.icon_marka)和fromBitmap(Bitmap),我們可以進行把view封裝為Bitmap進行放入其中,下面提供view轉(zhuǎn)換為Bitmap的方法

private Bitmap getViewBitmap(View addViewContent) {

addViewContent.setDrawingCacheEnabled(true);

addViewContent.measure(

View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),

View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));

addViewContent.layout(0, 0,

addViewContent.getMeasuredWidth(),

addViewContent.getMeasuredHeight());

addViewContent.buildDrawingCache();

Bitmap cacheBitmap = addViewContent.getDrawingCache();

Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);

return bitmap;

}

上面得到 BitmapDescriptor 之后 然后我們根據(jù)不同的經(jīng)緯度加入到其中 ,多個氣泡可以傳入 集合list,

//構(gòu)建MarkerOption,用于在地圖上添加Marker

OverlayOptions option =new? MarkerOptions().position(point).icon(descriptor);

//在地圖上添加Marker,并顯示

Marker mMarkerA = (Marker)mBaiduMap.addOverlay(option);


那么問題來了,如果要我們點擊某一個氣泡,并且在之前List里面取數(shù)據(jù)取顯示呢?咋辦呢?開始很多人想,把上面的每一個mMarkerA,也放在集合里面,每個給他一個flage標(biāo)志,然后遍歷判斷是否是當(dāng)前的。然后再取數(shù)據(jù)進行點擊傳遞。如果這樣做那么大家就繞彎路了,開始我也是這樣的。如果大家留意會發(fā)現(xiàn) Marker 提供給大家一個方法對我們android 開發(fā)很熟悉的Marker.setExtraInfo(bundle).. 那么我們可以把所有點擊的信息綁定再當(dāng)前的Marker里面。


點擊之后我們只需要? LegWorkDetailBean entity =(LegWorkDetailBean) marker.getExtraInfo().get("info");

這樣就可以獲取到點擊當(dāng)前的某個氣泡的具體信息了!

總結(jié),寫得不太清楚,有點亂,希望對大家有用,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容