百度地图,各种问题解决汇总

工作过程中,用到了百度地图,出现了一些问题。把各种问题进行一个汇总,很多都是网友智慧。

1、如何获取地图中心点的经纬度?

    移动、放大、缩小之后,需要获取地图的中心点位置。其实很简单

    1、获取到一个百度map的对象

 mMapView = (MapView) findViewById(R.id.bmapView);
 mBaiduMap = mMapView.getMap();

  2、设置一个监听

view.getMap().setOnMapStatusChangeListener(this);

  该监听,地图放大缩小都可以收到。

     3、在回调的方法中处理

@Override
    public void onMapStatusChangeFinish(MapStatus mapStatus)
    {
        LatLng latLng = mapStatus.target;
        LogUtil.i("onMapStatusChangeFinish", "" + latLng.latitude, "" + latLng.longitude);
    }

  在onMapStatusChangeFinish方法里面处理即可mapStatus.target就是中心点的坐标。

 2、如何在地图中心点绘制一个图标,固定不动?

    效果类似市面上那些软件的效果,如摩拜、滴滴之类的。

    我最开始是根据问题1,可以得到中心点坐标,在回调里面刷新一下。

    但这样会有一个效果就是,会有一个移动过程,和这些软件里面的不一样。

    最后是在论坛上面看到其他人的思路:在地图上覆盖一层layout,和地图的view重合,然后把图标add在上面的layout里面就解决了。

3、图标中心点和地图中心点不重合

    根据2,做出之后,大体上看是没什么问题的。但恰好,我是最开始按问题1方式做的代码没有删掉。

    这样就发现一个问题,根据问题2做出的图标和根据问题1做出的图标居然不重合。

    经过分析,是我自己的失误。我是直接设置图标在layout的中心位置,没考虑到图标的是长宽的,在layout里面的坐标是指的左上角。地图里面却不是

    在layout里面考虑一下图标大小,修正一下坐标就可以了。

4、获取LocationClient,多次定位

    我的需求是,我调用一次百度地图定位就返回一次就好,不要一直在后台频繁更新。因为没有这个需求,这样会消耗流量和电量。

    本来这个是很简单的,但是我强迫症,我希望是不要很次获取一下定位就new一个LocationClient,希望可以多次使用。

    这是前提,使用的时候,发现第一次是好使的。但第二次就不触发回调了,就在放弃,大不了每次都new的时候,发现百度地图还有一个方法

    那就是,在后面start(),加上requestLocation()即可。

 

转载于:https://www.cnblogs.com/mltx/p/6943475.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值