標注(Marker)是開發者最常使用的地圖覆蓋物志一,今天就來向大家介紹一些標注(Marker)的最基本使用方法!

實現目標:

1、構建基礎地圖頁面;

2、在地圖的中心點處添加 Marker;

3、實現 Marker 的點擊事件響應;

4、實現 Marker 的添加和靈活刪除;

為了實現以上目標,我們會分成以下若干步驟來進行。

第一步、創建工程,導入百度地圖 Android SDK;

具體創建工程的方式(略)。本示例主要是為了實現地圖及相關的覆蓋物功能,因此這里我只使用 SDK 開發資源下載平台所提供的【基礎地圖】功能模塊即可。

相應下載地址為:http://lbsyun.baidu.com/sdk/download

勾選如圖所示:

選擇完成后,點擊開發包下載,將所下載開發包正確導入開發工程。

第二步、申請開發者秘鑰;

工程創建完成后,到 API 控制台,申請相應的開發秘鑰,為具體開發工作准備。

具體申請方式及注意事項,請參考:  此處不再贅述。

第三步、修改 AndroidManifest 文件,添加開發秘鑰和所需權限;

在 AndroidManifest 文件中,添加開發秘鑰和所需權限。

添加開發秘鑰方式如下:

android:name="com.baidu.lbsapi.API_KEY"

android:value="開發秘鑰!" />注意在 application 里面。

添加所需權限如下:

第四步、創建基礎地圖;

在 xml 文件中添加 mapview 控件,如下所示:

android:id="@+id/bmapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="true" />在 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() {
@Override
public boolean onMarkerClick(Marker arg0) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Marker被點擊了!", Toast.LENGTH_SHORT).show();
return false;
}
});

第七步、利用 Button 控件,控制 Marker 的添加刪除;

這里用 button 來控制在地圖上添加 或者 刪除一個 marker,首先在 xml 中添加一個 button 控件:

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:text="刪除Marker" />

在 java 代碼中添加這個 button 的點擊事件響應,核心代碼如下:

//按鈕控制添加刪除 button
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(button.getText() == "添加Marker")
{
marker = (Marker) baiduMap.addOverlay(markerOptions);
button.setText("刪除Marker");
}
else
{
marker.remove();
button.setText("添加Marker");
}
}
});

通過以上的操作,就可以實現相應的 marker 添加,marker 點擊響應,marker 刪除等操作。