一:为地图设置事件

注意新版本中要有一个getMap

mMapView.getMap().setOnMapStatusChangeListener(listener);
OnMapStatusChangeListener listener = new OnMapStatusChangeListener() {      /**     * 手势操作地图,设置地图状态等操作导致地图状态开始改变。     * @param status 地图状态改变开始时的地图状态     */      public void onMapStatusChangeStart(MapStatus status){      }      /**     * 地图状态变化中     * @param status 当前地图状态     */      public void onMapStatusChange(MapStatus status){      }      /**     * 地图状态改变结束     * @param status 地图状态改变结束后的地图状态     */      public void onMapStatusChangeFinish(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 = new DisplayMetrics();        getWindowManager().getDefaultDisplay().getMetrics(dm);int Max_X=dm.widthPixels;int Max_Y=dm.heightPixels;System.out.println("屏幕宽:"+Max_X+" 高:"+Max_Y);


2:得到左上角坐标

Point pt = new Point();        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 = new DisplayMetrics();        getWindowManager().getDefaultDisplay().getMetrics(dm);    Point pty = new Point();        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 = new LatLng(39.94923, 116.397428);OverlayOptions ooA = new MarkerOptions().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



更多相关文章

  1. Android(安卓)获取手机本地图片所在的位置
  2. Android(安卓)旋转屏幕捕获当前屏幕的状态
  3. Android获取所在地城市名2
  4. Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android(安
  5. Android查看系统信息
  6. Android(安卓)用sp存储登录状态以及退出登录
  7. android中的状态保存
  8. 检测Android设备有线网络连接状态
  9. 【Android】网络状态

随机推荐

  1. Android(安卓)Ap 开发 设计模式第二篇:适
  2. 设置屏幕显示模式ScreenOrientation.
  3. android编辑单个工程
  4. android 焦点问题
  5. 如何让Android中的 Base64工具类支持2.2
  6. EditText
  7. android 如何在状态栏上增加一个icon
  8. Android的ADT的安装
  9. android 测试简介
  10. Android单元测试详解(以公司产品demo为案