首页 > 代码库 > 百度地图实现普通地图、定位、周边搜索功能
百度地图实现普通地图、定位、周边搜索功能
注意:此Demo是用Android Studio实现的
//--------------一下是普通地图的实现-----------------------------------
1:打开百度地图APi进去,如果没有注册过的需要注册,注册过的登录进入
2:点击开发——Android地图SDk——点击获取密钥——点击创建应用——然后你就创建一个新的项目
3:打开你项目下的res——values——string.xml把项目名:比如BaiDuMap复制到应用名称中去
4:应用类型选择:Android SDK
5:发布版SHA1 的获取:打开你电脑的c盘——用户——你的用户名——.android 下面有一个debug.keystore
点击键盘Windows+R 进入黑窗口 输入 keytool -list -v -keystore 把keytool -list -v -keystore拖进去(注意:-keystore后面要有一个空格)点击键盘的回车键
6:输入密钥库口令:android (注意都是英文小写)回车键
7:把下面显示的证书指纹中的:SHA1复制到 发布版SHA1
8:打开你项目的清单文件 把包名复制到 包名
9:点击下面的提交
10:就生成了一个Key
11:点击开发指南下的相关下载,下载相关的demo
12:把demo中libs下的除了android-support-v4 全部复制到你的工程的libs下
点击Android Studio工具栏中的有多个小方块的那个图标
点击APP再点击Dependencies ——点击加号 ——选择File dependency
把libs下的jar包都添加进去
13:进入百度地图Api的Android定位Sdk 中开发指南中的配置环境 找到
sourceSets {
main {
jniLibs.srcDirs = [‘libs‘]
}
}
复制到 工程下的build.gradle中
如:buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
sourceSets {
main {
jniLibs.srcDirs = [‘libs‘]
}
}
}
dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
testCompile ‘junit:junit:4.12‘
compile ‘com.android.support:appcompat-v7:23.4.0‘
}
点击右上角的Sync Now 同步一下
14:进入开发指南中的 Hello BaiduMap中 (注意:key值就是刚才我们申请的那个)
(1)在application中添加开发密钥
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="http://www.mamicode.com/开发者 key" />
</application>
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.WRITE_SETTINGS" />
第三步,在布局xml文件中添加地图控件;
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
注意:在SDK各功能组件使用之前都需要调用
SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中
第四步我是这么做的:新建一个application包,在这个包下新创建一个BaseApplication类并继承Application,实现onCreate的方法
在onCreate中复制 SDKInitializer.initialize(getApplicationContext());进去
如下:
public class BaseApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
SDKInitializer.initialize(getApplicationContext());
}
}
然后在清单文件中配置:<application下:
<application
android:name=".application.BaseApplication"
第五步,创建地图Activity,管理地图生命周期;
public class MainActivity extends Activity {
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}
完成以上步骤后,运行程序,即可在您的应用中显示
//-------------------以上是普通地图的失现---------------------------------------------------------
百度地图实现普通地图、定位、周边搜索功能