android 百度地图3.0,android 百度地图3.0
一:為地圖設(shè)置事件
注意新版本中要有一個(gè)getMap
mMapView.getMap().setOnMapStatusChangeListener(listener);
OnMapStatusChangeListener?listener?=newOnMapStatusChangeListener()?{
/**
*?手勢操作地圖,設(shè)置地圖狀態(tài)等操作導(dǎo)致地圖狀態(tài)開始改變。
*?@param?status?地圖狀態(tài)改變開始時(shí)的地圖狀態(tài)
*/
publicvoidonMapStatusChangeStart(MapStatus?status){
}
/**
*?地圖狀態(tài)變化中
*?@param?status?當(dāng)前地圖狀態(tài)
*/
publicvoidonMapStatusChange(MapStatus?status){
}
/**
*?地圖狀態(tài)改變結(jié)束
*?@param?status?地圖狀態(tài)改變結(jié)束后的地圖狀態(tài)
*/
publicvoidonMapStatusChangeFinish(MapStatus?status){
}
};
二:經(jīng)緯度轉(zhuǎn)化為屏幕中的坐標(biāo)
//LatLng?p2?=?new?LatLng(39.94923,?116.397428);
LatLng?p2?=?mMarkerA.getPosition();
Point?pt?=mMapView.getMap().getProjection().toScreenLocation(p2);
System.out.println("轉(zhuǎn)化為屏幕坐標(biāo)?x:"+pt.x+"?y:"+pt.y);
三:屏幕中坐標(biāo)轉(zhuǎn)化為經(jīng)緯度
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
LatLng?p2?=?mMarkerA.getPosition();
Point?pt?=mMapView.getMap().getProjection().toScreenLocation(p2);
System.out.println("轉(zhuǎn)化為屏幕坐標(biāo)?x:"+pt.x+"?y:"+pt.y);
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
System.out.println("轉(zhuǎn)化的經(jīng)緯度?x:"+ll.latitude+"?y:"+ll.longitude);
四:得到手機(jī)屏幕,左上,左下,右上,右下經(jīng)緯度
可以更具屏幕坐標(biāo)轉(zhuǎn)經(jīng)緯度的方法輕松拿到左上,左下,右上,右下經(jīng)緯度
1:得到屏幕坐標(biāo)就是寬高
DisplayMetrics?dm?=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
intMax_X=dm.widthPixels;
intMax_Y=dm.heightPixels;
System.out.println("屏幕寬:"+Max_X+"?高:"+Max_Y);
2:得到左上角坐標(biāo)
Point?pt?=newPoint();
pt.x=0;
pt.y=0;
LatLng?ll?=?mMapView.getMap().getProjection().fromScreenLocation(pt);
System.out.println("左上角經(jīng)緯度?x:"+ll.latitude+"?y:"+ll.longitude);
3.得到右下角經(jīng)緯度
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("右下角經(jīng)緯度?x:"+lly.latitude+"?y:"+lly.longitude);
五:覆蓋物角度旋轉(zhuǎn)
使用方法rotate即可
LatLng?p2?=newLatLng(39.94923,116.397428);
OverlayOptions?ooA?=?newMarkerOptions().position(p2).icon(bdA).rotate(-30);
mMarkerA?=?(Marker)?(mBaiduMap.addOverlay(ooA));
六:設(shè)置中心的,縮放級別
//初始化地圖
MapView mMapView = (MapView) findViewById(R.id.map);
BaiduMap mBaidumap = mMapView.getMap();
//設(shè)定中心點(diǎn)坐標(biāo)
LatLng cenpt = new LatLng(29.806651,121.606983);
//定義地圖狀態(tài)
MapStatus mMapStatus = new MapStatus.Builder()
.target(cenpt)
.zoom(18)
.build();
//定義MapStatusUpdate對象,以便描述地圖狀態(tài)將要發(fā)生的變化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改變地圖狀態(tài)
mBaidumap.setMapStatus(mMapStatusUpdate);
七:覆蓋物彈出層效果
1:可以使用Dialog使用懸浮彈出層效果
手機(jī)屏幕小一般這種方式更fit
總結(jié)
以上是生活随笔為你收集整理的android 百度地图3.0,android 百度地图3.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse MyEclipse中安装
- 下一篇: 怎样将Win10自带的Photos查看器