调用百度地图步骤
1.到百度开发者中心注册一个账号然后申请开发者资格,接着就可以申请百度地图的key了。
申请地址:http://lbsyun.baidu.com/apiconsole/key?application=key
获取SHA1方法如下:打开Eclipse点击Window选择preferences
复制SHA1到百度数字签名中即可,然后输入项目应用的包名便创建完成
然后到http://lbsyun.baidu.com/sdk/download下载地图的相关jar包即可
2.我们新建一个项目工程名为百度地图测试,然后把刚才下载jar文件放入到libs中
打开Android配置文件加入以下权限
<!-- 百度地图所需权限 -->
<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" />
在application中添加开发密钥
<!-- 百度地图key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="5wtGNGuGt9gjsGxBhcXAA8YC98bP29pQ" />
3.在布局文件中添加地图控件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.baidu.mapapi.map.MapView
android:id="@+id/baidumap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>
Activity中的代码很简单
package com.shiran.api.baidu;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.widget.Toast;
public class MainActivity extends Activity {
private long exitTime = 0;
//申明地图控件
private MapView mMapView;
@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.baidumap);
}
@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();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if((System.currentTimeMillis()-exitTime) > 2000){
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}
运行即可显示百度地图