android 百度地图3.0,android 百度地图3.0

一:为地图设置事件

注意新版本中要有一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值