第一步、配置环境
1申请百度地图key
2.导入基本的百度地图jar包和so文件
要想使用百度地图sdk,就必须申请一个百度地图的api key。申请流程挺简单的。
1、首先注册成为百度的开发者,然后打开
http://lbsyun.baidu.com/apiconsole/key
注册:
激活邮箱
创建应用:
2、我们需要获取SHA1,还要找自己项目的包名,这样才能得到安全码
那么怎么获得SHA1呢?
我们一般都设置好java的环境变量,
那就直接:win+r,cmd,来到dos命令窗口,
输入【keytool -list -v -keystore debug.keystore】回车,
然后提示你输入【秘钥库口令】,输入【android】回车然后就会显示SHA1的值。
在AndroidMainfest.xml找自己的包名
3、输入从DOS获得的SHA1 ,以及自己的项目包名
第二步,基本开发
基本功能是定位,根据经纬度、地址查询等简单操作。
- 在AndroidManifest.xml文件下添加权限信心、百度key等
-
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.wanglei.mymap">
<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.WRITE_SETTINGS" />
<!-- 访问精确位置的权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- 百度地图key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="KlXVjLVaGQZUk5z8i13mAPL805aFXE8n" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
</service>
</application></manifest>
在activity_main.xml里添加控件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:id="@+id/linearLayout1"
android:visibility="gone"
>
<EditText
android:layout_width="120dp"
android:layout_height="match_parent"
android:hint="经度"
android:id="@+id/editText_lg" />
<EditText
android:layout_width="120dp"
android:layout_height="match_parent"
android:hint="纬度"
android:id="@+id/editText_la" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="前往"
android:id="@+id/button_llsearch"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal"
android:id="@+id/linearLayout2"
android:visibility="gone"
>
<EditText
android:layout_width="240dp"
android:layout_height="match_parent"
android:hint="地址"
android:id="@+id/editText_site" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="前往"
android:id="@+id/button_sitesearch"/>
</LinearLayout><com.baidu.mapapi.map.MapView
android:id="@+id/baiduMapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>AndroidManifest.xml:增加百度地图SDK需要的权限、API_KEY和定位服务
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="intvehapp.intvehapp" >
<!-- 百度地图API所需权限 -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<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.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问精确位置的权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".BaiDuMapActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!--百度API_KEY-->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="iXDGdZtFiPifnNm6dUEFwDRXYQVeZ37V" />
<!--百度定位服务-->
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
</service>
</application>
</manifest> -
效果图