一:為地圖設置事件
注意新版本中要有一個getMap
mMapView.getMap().setOnMapStatusChangeListener(listener);
OnMapStatusChangeListener?listener?=newOnMapStatusChangeListener()?{
/**
*?手勢操作地圖,設置地圖狀態等操作導致地圖狀態開始改變。
*?@param?status?地圖狀態改變開始時的地圖狀態
*/
publicvoidonMapStatusChangeStart(MapStatus?status){
}
/**
*?地圖狀態變化中
*?@param?status?當前地圖狀態
*/
publicvoidonMapStatusChange(MapStatus?status){
}
/**
*?地圖狀態改變結束
*?@param?status?地圖狀態改變結束后的地圖狀態
*/
publicvoidonMapStatusChangeFinish(MapStatus?status){
}
};
二:經緯度轉化為屏幕中的坐標
//LatLng?p2?=?new?LatLng(39.94923,?116.397428);
LatLng?p2?=?mMarkerA.getPosition();
Point?pt?=mMapView.getMap().getProjection().toScreenLocation(p2);
System.out.println("轉化為屏幕坐標?x:"+pt.x+"?y:"+pt.y);
三:屏幕中坐標轉化為經緯度
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
LatLng?p2?=?mMarkerA.getPosition();
Point?pt?=mMapView.getMap().getProjection().toScreenLocation(p2);
System.out.println("轉化為屏幕坐標?x:"+pt.x+"?y:"+pt.y);
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
System.out.println("轉化的經緯度?x:"+ll.latitude+"?y:"+ll.longitude);
四:得到手機屏幕,左上,左下,右上,右下經緯度
可以更具屏幕坐標轉經緯度的方法輕松拿到左上,左下,右上,右下經緯度
1:得到屏幕坐標就是寬高
DisplayMetrics?dm?=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
intMax_X=dm.widthPixels;
intMax_Y=dm.heightPixels;
System.out.println("屏幕寬:"+Max_X+"?高:"+Max_Y);
2:得到左上角坐標
Point?pt?=newPoint();
pt.x=0;
pt.y=0;
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
System.out.println("左上角經緯度?x:"+ll.latitude+"?y:"+ll.longitude);
3.得到右下角經緯度
DisplayMetrics?dm?=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Point?pty?=?newPoint();
pty.x=dm.widthPixels;
pty.y=dm.heightPixels;
LatLng?lly?=????mMapView.getMap().getProjection().fromScreenLocation(pty);
System.out.println("右下角經緯度?x:"+lly.latitude+"?y:"+lly.longitude);
五:覆蓋物角度旋轉
使用方法rotate即可
LatLng?p2?=newLatLng(39.94923,116.397428);
OverlayOptions?ooA?=?newMarkerOptions().position(p2).icon(bdA).rotate(-30);
mMarkerA?=?(Marker)?(mBaiduMap.addOverlay(ooA));
六:設置中心的,縮放級別
//初始化地圖
MapView mMapView = (MapView) findViewById(R.id.map);
BaiduMap mBaidumap = mMapView.getMap();
//設定中心點坐標
LatLng cenpt = new LatLng(29.806651,121.606983);
//定義地圖狀態
MapStatus mMapStatus = new MapStatus.Builder()
.target(cenpt)
.zoom(18)
.build();
//定義MapStatusUpdate對象,以便描述地圖狀態將要發生的變化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改變地圖狀態
mBaidumap.setMapStatus(mMapStatusUpdate);
七:覆蓋物彈出層效果
1:可以使用Dialog使用懸浮彈出層效果
手機屏幕小一般這種方式更fit