最近一段时间 ,公司项目又用到百度地图,以前也用过几次 都是基本的功能,这一次地图基本需要的功能都基本完成,就决定记录一次,再就是要放假了有时间。
项目用到的百度地图功能介绍:
1.基础定位(实时定位),2.地图检索功能,3.个性化地图,4.步行导航,骑车导航,开车导航,5.添加Mark点,6多点定位,7.位置提醒,8.地理编码和地理反编码,9.百度语音播报,基本就这些功能。
少废话,来几张截图展示一下:
开发步骤
1.去百度地图开放平台注册,创建应用生成对应的Key。(网上很多步骤,得到SHA1,正式版和开发版)
2.下载你需要的SDK和Demo 集成到自己的项目中(这里注意libs和jniLibs里面的东西,个人建议跑通demo,在把这2个里面的东西复制到自己项目下面)
3.看相应的文档基本就查不多能达到自己的要求
开发中遇到的问题:
1.定位有时候跑到南非那个小国家去了。
解决办法是:重新用工具生成SHA1,在去获取Key (注意包名不要错误)。就解决了定位跑到南非的问题
2.定位(实时定位,当前的位置只要重新定位,就把地图拉到了当前位置在手机屏幕中央)
解决办法是:
/**
* 地图移动到我的位置,此处可以重新发定位请求,然后定位;
* 直接拿最近一次经纬度,如果长时间没有定位成功,可能会显示效果不好
*/
private void center2myLoc(double currentLantitude, double currentLongitude) {
LatLng ll = new LatLng(currentLantitude, currentLongitude);
MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
mMapView.getMap().animateMapStatus(u);
}
把这个放到是否第一次定位里面去 ,以前是放到外面的。
3.开车导航问题
说在libs下面找不到,看它的demo是在jniLibs下面 而没有放到libs下面。
解决办法:把这几个鸟东西复制到自己项目的libs下面 ,就完美的解决了
4.开车导航(算路失败)
解决办法:把开始位置和结束位置的经纬度不要搞错 ,封装为LatLng 就ok
5.sdk和jar包的冲突(debug版本能编译通过,但是release版本就编译不过)
解决办法:下载最新的sdk和jar包,或者找到有冲突的jar 删掉相同的 。就能解决
再优化一下,改一下Demo 就基本能到达需求。