百度地图API 安卓项目 实时获取地图中心点经纬度

附DEmo记录百度地图API哪些坑
项目可以实时获取当前位置并且计算和某固定位置的距离,并显示在屏幕上方。
做项目时遇到的难点:
  1. 如何把覆盖物固定在屏幕中间,不随着地图的移动而移动
  2. 如何获取地图中间位置的坐标/经纬度
  3. 如何把两点之间的距离在textView中显示出来

首先第一点折腾了比较久,思维太僵硬了,只想着把覆盖物固定在地图中间,其实换个角度想,只要把覆盖物固定在屏幕中心点,不就可以让覆盖物不随着地图一起移动了吗?想通之后就好解决了,把覆盖物当做一个控件,放在layout文件中设置layout属性为center,这样覆盖物就可以固定在屏幕中间了,可以随意移动地图,并且覆盖物不会随着地图一起移动。

覆盖物是固定好了,但是怎么获取屏幕中心点的位置呢?当时想到了两点,把屏幕坐标转换为地图经纬度,但是这样比较麻烦,最后失败了,查阅百度API后发现有提供方法给我们。

OnMapStatusChangeListener listener = new OnMapStatusChangeListener() {
     
    /** 
    * 手势操作地图,设置地图状态等操作导致地图状态开始改变。 
    * @param status 地图状态改变开始时的地图状态 
    */  
    public void onMapStatusChangeStart(MapStatus status){
     
    }  

    /** 因某种操作导致地图状态开始改变。
    * @param status 地图状态改变开始时的地图状态 
    * @param reason表示地图状态改变的原因,取值有:
         * 1:用户手势触发导致的地图状态改变,比如双击、拖拽、滑动底图
         * 2:SDK导致的地图状态改变, 比如点击缩放控件、指南针图标
         * 3:开发者调用,导致的地图状态改变
    */ 
    public void onMapStatusChangeStart(MapStatus status, int reason);
    }

    /** 
    * 地图状态变化中 
    * @param status 当前地图状态 
    */  
    public void onMapStat
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值