Android开放百度地图集成

曾无好事来相访,赖尔高文一起予。这篇文章主要讲述Android开放百度地图集成相关的知识,希望能为你提供帮助。
1、创建应用 获取AK (我理解为Application key)
  通过百度账号登录百度地图开放平台,进入API控制台 http://lbsyun.baidu.com/apiconsole/key 创建自己的应用,输入应用名称 ,选择android SDK 应用类型,选择需要的服务(默认全选) 输入签名文件的SHA1,默认的签名文件debug.keystore 在  C:\Users\你的用户\.android下,然后打开控制台cd到此目录下 键入 keytool -v -list -keytore debug.keystore,就可以获取签名文件的SHA1了 注意复制时不要有空格,然后输入应用的包名,也不要输入错了,系统自己生成安全码,提交就创建完成了。
【Android开放百度地图集成】2、下载SDK,集成到自己的项目
选择需要的服务类型,然后下载SDK 也可以下载demo,http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download,下载完成后解压,将lib下面的jar和so文件放入工程的libs下面,compile fileTree(include: [‘*.jar‘], dir: ‘libs‘) build.grade下有这个语句 就只需要 在android下添加 sourceSet{main {jniLib.Dir(‘libs‘)}}就可以了 这个地方百度开发文档说的有点模糊,也可以自己创建jniLib文件夹添加so文件,但不要同时都做。
然后在清单文件中添加权限 service(定位需要)mata(只需要改自己的ak就行),注意也别放错位置了。百度开发文档都有不在粘贴  http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap。
3、展示地图 定位 添加覆盖物 地理编码等
在自己的xml文件中引入mapview,在java代码中 初始化地图的SDK   SDKInitializer.initialize(getApplicationContext()); 获取mapview并且在activity的生命周期中实现mapview的周期 ,到目前位置,运行应用就可以看到地图的效果了,北京。
通过LocationClient 、BaiduMap、BDLocationListener实现定位功能 通过mapview获取baidumap 设置LocationClient 的参数 和监听器 ,实现BDLocationListener接口,然后开启定位  LocationClient.start(),通过接口回调的location就能获取位置等信息 。
通过纬度和经度改变地图所显示的位置和添加自己位置

a、移动地图的位置
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
// 移动到某经纬度
mBaiduMap.animateMapStatus(update);

b、添加自己的位置

mBaiduMap.setMyLocationEnabled(true);
// 构造定位数据
MyLocationData locData = https://www.songbingjia.com/android/new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
// 设置定位数据
mBaiduMap.setMyLocationData(locData);

c、通过mBaiduMap.addOverlay(option); 添加覆盖物marker等 参考百度文档
//添加marker

//构建Marker图标

BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(drawable);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);

d、添加线等,pts为一个集合List< LatLng>

OverlayOptions polylineOption = new PolylineOptions()
.points(pts).width(5).color(0XFFff0000)
;
mBaiduMap.addOverlay(polylineOption);

e、地理编码 输入一个位置返回经纬度

mSearch = GeoCoder.newInstance(); 获取实例对象 设置监听器,实现监听器接口OnGetGeoCoderResultListener ,回调的result就可以获取信息 ,注意都是异步的,当然也有反地理编码。

百度地图实现的功能很多,你能想到的 所需要的 都能提供。














































    推荐阅读