百度地图开发中的一些问题

一、定位功能的实现:

  1. 创建LocationClient
  2. implements BDLocationListener接口,重写onReceive方法
  3. 创建并注册listener
  4. 创建并设置LocationClientOption

LocationClientOption sample:

option.setCoorType("bd09ll");
option.setIsNeedAddress(true);
option.setOpenGps(true);
option.setScanSpan(1000);

onReceive sample:

Log.e("mybaidu","latitude:" + location.getLatitude() + "; longtitude:" + location.getLongitude());
MyLocationData data = new MyLocationData.Builder()//
    .accuracy(location.getRadius())//
    .latitude(location.getLatitude())//
    .longitude(location.getLongitude())//
     .build();
mBaiduMap.setMyLocationData(data);
if(isFirstIn){
    LatLng latLng = new LatLng(location.getLatitude(),location.getLongitude());
    MapStatusUpdate msu = MapStatusUpdateFactory.newLatLngZoom(latLng,18);
    mBaiduMap.animateMapStatus(msu);
    isFirstIn = false;
    Toast.makeText(getContext(), location.getAddrStr(),Toast.LENGTH_SHORT).show();
            }

二、NOTE:

  1. AndroidManifest.xml中添加服务(百度API文档中未提)
    <service
    android:name="com.baidu.location.f"
    android:enabled="true"
    android:process=":remote">
    <intent-filter>
    <action android:name="com.baidu.location.service_v2.2">
    </action>
    </intent-filter>
    </service>
  2. 在onResume()中进行开启定位
    mBaiduMap.setMyLocationEnabled(true);
    mLocationClient.start();
  3. 在onStop()中关闭定位
    mBaiduMap.setMyLocationEnabled(false);
    mLocationClient.stop();
  4. 在onPause()/onDestroy()中分别进行mapView的onPause()/onDestroy()

三、遇到的问题

1.打开地图显示一片白/蓝,不显示地图,原因是申请百度地图AK时,数字签名(SHA1)不正确

  • 解决方案:
    1. 使用命令行进入.android路径(c:\users\用户名.android)
    2. 开发模式下输入命令:keytool -list -v -keystore debugstore 回车,输入密码,默认是android(输入时屏幕不显示,直接打完按回车,当时被这个坑了好一会),即可获得SHA1。

2.百度定位获取经纬度正确,但是在地图上显示不正确,有一两公里的偏差,原因是忘了把option设置给mLocationClient,这个是粗心导致的,也浪费了自己好多时间。

  • 解决方案:
    • 重复多次定位,记得一定要设置option
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值