百度地图实现app定位功能
android开发
前期准备
(一)注册(登录)百度地图账号和获取密钥
1.注册和获取密钥
网址:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak
2.什么是密钥
开发者在使用SDK之前需要获取百度地图移动版开发密钥(AK),该AK与您的百度账户相关联。请妥善保存您的AK,地图初始化时需要使用AK。
3.获取开发密钥(AK)
百度地图 SDK开发密钥的申请地址为:http://lbsyun.baidu.com/apiconsole/key
步骤如下:
(1)登录百度账号
(2)百度地图开发者注册
(3)SHA1获取
① 找到View中的Tool Windows并打开Terminal
② 找到自己的jdk的bin目录,下面为本电脑的目录
C:\Program Files\Java\jdk1.8.0_202\bin
③ 在Android studio控制台下方输入 cd+bin目录
④ 然后输入keytool -list -v -keystore 目录+debug.keystore(这里的目录通常是在用户名下面的.android文件夹下面,本电脑为C:\Users\lenovo.android)
口令为:android
(4)获取包名
在app目录下的build.gradle文件中找到applicationId,并确保其值与AndroidManifest.xml中定义的package相同。
(5)创建平台
(6)创建应用
填写SHA1和pacagename
(7)获得密钥
(二)下载百度地图软件开发包
http://lbsyun.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar
1.根据个人需求选择相应功能
2.解压安装包
3.在Project模式下将BaiduLBS_Android jar包放入project的libs目录中
4.在src的main目录下新建一个文件夹jniLibs(一定要是这个名字!!),将解压包中的文件夹全部拷贝到jniLibs这里
5.选择刚刚配置的jar包,右击点击Add as library
在项目的build.gradle可以看到已经帮我们自动添加依赖
二、定位功能实现
(一)配置
1.第一步 配置AndroidManifest.xml文件
在application中添加如下代码,your key加入配置开发密钥(AK)
(2)添加权限(下面代码包含所有可能用到的权限)
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
(3)在布局中添加百度的mapview视图控件
<com.baidu.mapapi.map.MapView
android:id="@+id/baiduMapView"
android:layout_width=“fill_parent”
android:layout_height=“fill_parent”
android:clickable=“true” />
(4)编写java代码创建一个类
(5)最后创建一个activity,实现定位就可以啦
源码地址:https://download.csdn.net/download/qq_45152008/13679598