一:使用百度地圖的Key
二:mapView
//找到mapView控件
MapView mapview = findViewById(R.id.mapview);
//是否顯示縮放按鈕
mapview.showZoomControls(false);
//是否顯示地圖縮放標尺
mapview.showScalseControl(false);
//獲取地圖管理器,管理MapView :縮放 旋轉移動
BaiduMap baiduMap = mapview.getMap();
//設置縮放級別
baiduMap.setMapStatus(MapStatusUpdateFactory.zoomTo(15));//默認級別為12
//設置默認中心點
baiduMap.setMapStatus(MapStatusUpdateFactory.newLatlng(new latLng(維度,經度)))
public boolean onKeyDown(int keyCode,keyEvent event){
//在當前級別上放大一個級別
baiduMap.setMapStatus(MapStatusUpdateFactory.zoomIn());
//在當前級別上縮小一個級別
baiduMap.setMapStatus(MapStatusUpdateFactory.zoomOut());
//旋轉 以地圖中線點順時針逆時針旋轉
float rotate = baiduMap.getMapStatus().rotate;//獲取當前地圖的旋轉角度
//把角度類加后 重新設置給地圖
MapStatus rotateStatus = new MapStatus.Builder().rotate(rotate + 30).build();;//范圍是0-360
baiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus( rotateStatus));
//俯角旋轉
float overlook = baiduMap.getMapStatus().overlook;//獲取當前地圖的角度
MapStatus overlookStatus = new MapStatus.Builder().overlook(overlook - 15).build();;//范圍是0- (-45)
baiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus( overlookStatus));
//移動到一個點
baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng( new LatLng(維度,經度)));
}
圖層
//顯示底圖
baiduMap.setMaptype(BaiduMap.MAP_TYPE_NORMAL)
//顯示交通圖
baiduMap.setTrafficEnabled(true);
//顯示衛星圖
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATETTITE)
//繪制圓形覆蓋物
//創建覆蓋物對象
CircleOptions circleOptions = new CircleOptions();
LatLng latlng = new LatLng(維度,經度);
//設置數據
circleOptions.center(latlng);//設置中心點
circleOptions.fillColor(顏色值)//設置填充顏色
circleOptions.radius(1000)//設置半徑 單位是米
circleOptions.stroke(new Stroke (5,顏色值));//邊框 寬度和顏色
//把覆蓋物添加到底圖上
baiduMap.addOverlay(circleOptions)
//添加文字
TextOptions textOptions = new TextOptions();
textOptions.postion(latlng)//設置位置
textOptions.bgColor()//設置背景顏色
textOptions.fontColor()//設置文字顏色
textOptions.fonSize()//設置字體大小
textOptions.typeface(Typeface.SERIF)//設置字體
textOptions.text(" ")//設置文字內容
baiduMap.addOverlay(textOptions);//添加到底圖上
//MArKeR覆蓋物 可設置圖片.點擊事件
BitmapDescriptor icon = BitmapDescriptorFactory.
MarkerOptions options = new MarkerOoptions();
markerOptions.postion(latlng)
.icon(icon)//設置圖片 可添加集合 集合添加多張圖片
.title("文字");
.draggable(true)//可拖動
baiduMap.addOverlay(option)
//把事件傳遞該Marker覆蓋物
baiduMap.setOnMarkerClickListener(this);
//添加點擊彈出控件
VIew pop = View.inflate(this,布局文件,null);
pop.setCisiblity(View.INVISIBLE);
MapViewLayoutParams param = new MapViewLayoutParams.Builder()
.layoutMode(ELayoutMdoe.mapMode)//使用經緯度模式
.postion(latlng)
.width(MapViewLayoutParams.WRAP_CONTNENT)
.height(MapViewLayoutParams.WRAP_CONTNENT)
.yOffset(-10)//向上移動
.build();
mapView.addView(pop,param);
調用相對應的生命周期
PRotected void onResume(){
mapview.onResume();
super.onResume();
}
protected void onPause(){
mapview.onPause();
super.onPause();
}
protected void onDestory(){
mapview.onDestory();
super.onDestory();
}
新聞熱點
疑難解答