百度地图 android SDK

百度地图api的几个坑

1.编译错误,找不到com.baidu.mapapi.SDKInitializer

原因:
不仅需要baidumapapi_map_vXX.jar
还需要其他包,可能是
libBaiduMapSDK_base_vXX
或者libBaiduMapSDK_util_vXX

2.SDKInitializer.initialize(getApplicationContext())这句运行时报错

No implementationfound for com.baidu.platform。。。
原因:
\app\src\main\jnilibs\下的so文件要在arm64-v8a(手机是arm64?)这个文件夹下,不能直接在
\app\src\main\jnilibs\下,
所以是app\src\main\jnilibs\arm64-v8a这个目录下要有和jar对应的so文件

3.只显示网格,没有地图加载

原因:
开发者key的格式错误

<meta-data
    android:name="com.baidu.lbsapi.API_KEY"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />

上面com.baidu.lbsapi.API_KEY这个不要改(不要手欠改成自己的包名)
只要替换下面的xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx就可以了

另外,百度API_KEY的申请,需要用证书指纹,要用到下面的命令

keytool -list -v -keystore xxx.jks

debug key就是

keytool -list -v -keystore debug.jks

windows的debug key的默认路径是
C:\Users\yourname\.android>
正式版的key可以在android studio中申请,查看指纹的方法相同

4.坐标偏移

gps取到的坐标不能直接标在地图上,有很大的偏移
解决:

//获得GPS
Location last_location = locationmanager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
LatLng point=new LatLng(last_location.getLatitude(),last_location.getLongitude());
//转换
CoordinateConverter converter=new CoordinateConverter();
converter.from(CoordinateConverter.CoordType.GPS);
converter.coord(point);
point=converter.convert();

参考:
http://blog.csdn.net/callmesen/article/details/40542949

百度的sdk中有mapview坐标到地图经纬的映射,但是要用得到的经纬去模拟gps就会有问题,需要把百度的坐标转成设备坐标,这里有java的实现:
https://github.com/geosmart/coordtransform/blob/master/src/main/java/me/demo/util/geo/CoordinateTransformUtil.java

5.不是坑,是我手欠

把地图类型设置为NONE,导致白屏
mMap.setMapType(BaiduMap.MAP_TYPE_NONE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值