一、创建应用
2、点击“获取密钥”进入创建应用
这里创建的应用名为“TestBaiduMap”,注意这里安全码的填写,需要“数字签名+;+包名”,使用eclipse开发工具的可以按照 Eclipse->Window->Preference->Android->Build路径获取SHA1数字签名:
填写安全码时注意格式和相关包名,这里我们使用了“com.test.baidumap”:
创建项目成功后显示如下:
创建项目成功后,需要去“相关下载”里面下载SDK开发包,这里我们暂时下载如下:
解压相关包可以得到如下文件:
我们把这些文件拷贝到新建eclipse工程的libs下,这里注意项目的包名必须和创建项目里的包名一致:
注意工程配置,将“访问应用(AK)”配置到AndroidMainfest.xml里,本工程配置如下:
二、代码开发
1、功能实现:加载百度地图,设置地图标尺,切换视图(卫星和普通),打开实时交通。
2、实现效果图:
3、界面实现:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
3、代码实现:
package com.test.baidumap;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends Activity {
private MapView mapView;
private BaiduMap baiduMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
// requestWindowFeature(Window.FEATURE_NO_TITLE);// 去除标题
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.bmapView);
baiduMap = mapView.getMap();
MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(15.0f);
baiduMap.setMapStatus(msu);// 设置地图标尺
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.map_common:
baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break;
case R.id.map_site:
baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break;
case R.id.map_traffic:
if (baiduMap.isTrafficEnabled()) {
baiduMap.setTrafficEnabled(false);
item.setTitle("实时交通(off)");
} else {
baiduMap.setTrafficEnabled(true);
item.setTitle("实时交通(on)");
}
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}