SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_map);
// 獲取地圖控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
//設置是否顯示比例尺控件
mMapView.showScaleControl(false);
//設置是否顯示縮放控件
mMapView.showZoomControls(false);
// 刪除百度地圖LoGo
mMapView.removeViewAt(1);
// 設置marker圖標
bitmap = BitmapDescriptorFactory.fromResource(R.drawable.maker);
mBaiduMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public boolean onMapPoiClick(MapPoi arg0) {
// TODO Auto-generated method stub
return false;
}
//此方法就是點擊地圖監聽
@Override
public void onMapClick(LatLng latLng) {
//獲取經緯度
double latitude = latLng.latitude;
double longitude = latLng.longitude;
System.out.println("latitude=" + latitude + ",longitude=" + longitude);
//先清除圖層
mBaiduMap.clear();
// 定義Maker坐標點
LatLng point = new LatLng(latitude, longitude);
// 構建MarkerOption,用於在地圖上添加Marker
MarkerOptions options = new MarkerOptions().position(point)
.icon(bitmap);
// 在地圖上添加Marker,並顯示
mBaiduMap.addOverlay(options);
//實例化一個地理編碼查詢對象
GeoCoder geoCoder = GeoCoder.newInstance();
//設置反地理編碼位置坐標
ReverseGeoCodeOption op = new ReverseGeoCodeOption();
op.location(latLng);
//發起反地理編碼請求(經緯度->地址信息)
geoCoder.reverseGeoCode(op);
geoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult arg0) {
//獲取點擊的坐標地址
address = arg0.getAddress();
System.out.println("address="+address);
/**
* 給地圖上添加文字
*/
//定義文字所顯示的坐標點
LatLng llText = new LatLng(latitude, longitude);
//構建文字Option對象,用於在地圖上添加文字
OverlayOptions textOption = new TextOptions()
// .bgColor(0xAAFFFF00)
.fontSize(16)
.fontColor(Color.BLACK)
.text(addrStr)
// .rotate(-30)
.position(llText);
//在地圖上添加該文字對象並顯示
mBaiduMap.addOverlay(textOption);
} @Override public void onGetGeoCodeResult(GeoCodeResult arg0) { } }); } }); } @Override protected void onDestroy() { super.onDestroy(); // 在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); // 在activity執行onResume時執行mMapView. onResume (),實現地圖生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); // 在activity執行onPause時執行mMapView. onPause (),實現地圖生命周期管理 mMapView.onPause(); }