百度地圖 Android SDK - 標註(Marker)的基本使用
標註(Marker)是開發人員最常使用的地圖覆蓋物志一,今天就來向大家介紹一些標註(Marker)的最基本使用方法!
實現目標:
1、構建基礎地圖頁面;
2、在地圖的中心點處添加 Marker;
3、實現 Marker 的點擊事件響應;
4、實現 Marker 的添加和靈活刪除;
為了實現以上目標,我們會分成以下若干步驟來進行。
第一步、建立工程,匯入百度地圖 Android SDK;
具體建立工程的方式(略)。本樣本主要是為了實現地圖及相關的覆蓋物功能,因此這裡我只使用 SDK 開發資源下載平台所提供的【基礎地圖】功能模組即可。
相應為:http://lbsyun.baidu.com/sdk/download
勾選:
選擇完成後,點擊開發包下載,將所下載開發包正確匯入開發工程。
第二步、申請開發人員秘鑰;
工程建立完成後,到 API 控制台,申請相應的開發秘鑰,為具體開發工作準備。
具體申請方式及注意事項,請參考:http://blog.csdn.net/callmesen/article/details/39523767 此處不再贅述。
<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tdrI/bK9oaLQ3rjEIEFuZHJvaWRNYW5pZmVzdCDOxLz+o6zM7bzTv6q3osPY1L+6zcv50OjIqM/eo7s8L3A+CjxwPtTaIEFuZHJvaWRNYW5pZmVzdCDOxLz+1tCjrMztvNO/qreiw9jUv7rNy/nQ6Mioz96hozwvcD4KPHA+zO2807+qt6LD2NS/t73Kvcjnz8KjujwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;"> 注意在 application 裡面。
添加要求的權限如下:
第四步、建立基礎地圖;
在 xml 檔案中添加 mapview 控制項,如下所示:
在 java 代碼中初始化地圖 SDK,實現基礎地圖的展示:
//初始化地圖 SDKSDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main);//綁定XML中得 mapview 控制項mapView = (MapView) findViewById(R.id.bmapView);
第五步、擷取地圖中心點,並添加 Marker 對象;
實現的核心代碼如下:
baiduMap = mapView.getMap();LatLng latLng = baiduMap.getMapStatus().target;//準備 marker 的圖片BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);//準備 marker option 添加 marker 使用markerOptions = new MarkerOptions().icon(bitmap).position(latLng);//擷取添加的 marker 這樣便於後續的操作marker = (Marker) baiduMap.addOverlay(markerOptions);
第六步、實現 Marker 的點擊事件響應;
利用 baidumap 對象的地圖監聽方法,實現針對 marker 的點擊響應,核心代碼如下:
//對 marker 添加點擊相應事件baiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {@Overridepublic boolean onMarkerClick(Marker arg0) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), "Marker被點擊了!", Toast.LENGTH_SHORT).show();return false;}});
第七步、利用 Button 控制項,控制 Marker 的添加刪除;
這裡用 button 來控制在地圖上添加 或者 刪除一個 marker,首先在 xml 中添加一個 button 控制項:
在 java 代碼中添加這個 button 的點擊事件響應,核心代碼如下:
//按鈕控制添加刪除 buttonbutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif(button.getText() == "添加Marker"){marker = (Marker) baiduMap.addOverlay(markerOptions);button.setText("刪除Marker");}else {marker.remove();button.setText("添加Marker");}}});
通過以上的操作,就可以實現相應的 marker 添加,marker 點擊響應,marker 刪除等操作。