Android版本百度地图开发(一)——创建应用

原创 2013年12月05日 21:21:09

百度地图在Android开发中的应用前景还是蛮广泛的,所以这个系列将比较完整的讲解百度地图SDK的使用。


1 创建应用步骤

这一章我们讲讲利用百度地图时一般的应用创建步骤。前提是我们已有了一个Android工程。

1.1 获取密钥

自从2.3.1版本后,百度地图使用了新的密钥系统。我们这里以最新版本的密钥系统进行演示。

  1. 首先我们去http://developer.baidu.com/map/sdk-android.htm,找到获取密钥,期间需要登录你自己的百度帐号。
  2. 点击“创建应用”,之后输入应用名称、应用类型(这里是for mobile)、安全码(这里是"数字签名+;+包名");
    • 这里的数字签名通过Eclipse->Preference->Android->Build中的SHA-1得到;
  3. 获得的密钥纪录下来后备用;

1.2 拷贝文件

接下来我们将所需要的库文件拷贝到工程中。

  1. http://developer.baidu.com/map/sdkandev-download.htm下载所有sdk文件包,我这里得到的是BaiduMap_AndroidSDK_v2.3.1_All.zip;
  2. 接下来找到压缩包中的baidumapapi_v2_3_1.jar,将其拷贝到libs根目录;
  3. 找到压缩包中的libBaiduMapSDK_v2_3_1.so文件,将其拷贝到libs/armeabi目录;
  4. 在Eclipse的Build Path中,对于Order and Export,将"Android Private Libraries"选中,然后Project->Clean;
  5. 至此,拷贝文件工作完成;

1.3 修改Manifest.xml文件

对于工程需要增加网络、定位等权限,这里我们拷贝下面这段到Manifest.xml文件中:

    <!-- 使用网络功能所需权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
    </uses-permission>
    <!-- SDK离线地图和cache功能需要读写外部存储器 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <!-- 获取设置信息和详情页直接拨打电话需要以下权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CALL_PHONE" >
    </uses-permission>
    <!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>

    <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </permission>

    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_GPS" />

注意:我这里添加了以上权限后实际运行时还需要添加一个android.permission.WRITE_SETTINGS权限

同时我们需要一个Activity显示我们的Map界面,所以我们添加一个Activity:

        <!-- BaiduMap测试 -->
        <activity
            android:name="com.freesoft.activity.baidu.BaiduMapActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="sensor" >
        </activity>

当然还要添加屏幕和sdk版本的支持选项:

    <supports-screens android:largeScreens="true"
			android:normalScreens="true"
			android:smallScreens="true"
			android:resizeable="true"
			android:anyDensity="true"/>
    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="7" />

1.4 添加布局文件

由于是一个简单的工程,我们的布局文件是这个样子滴:

<?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">
	        <TextView android:layout_width="fill_parent"
	                android:layout_height="wrap_content"
	                android:text="hello world" />
	        <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
	                android:layout_width="fill_parent"
	                android:layout_height="fill_parent"
	                android:clickable="true" />
</LinearLayout>

1.5 Activity类代码

最重要的Activity代码来了:

public class BaiduMapActivity extends Activity {
	private BMapManager mBMapMan = null;
	private MapView mMapView = null;

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mBMapMan=new BMapManager(getApplication());
		mBMapMan.init("这里填入你自己申请的Key", null);  
		//注意:请在试用setContentView前初始化BMapManager对象,否则会报错
		setContentView(R.layout.activity_baidumap);
		mMapView=(MapView)findViewById(R.id.bmapsView);
		mMapView.setBuiltInZoomControls(true);
		//设置启用内置的缩放控件
		MapController mMapController=mMapView.getController();
		// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
		GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
		//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
		mMapController.setCenter(point);//设置地图中心点
		mMapController.setZoom(12);//设置地图zoom级别
	}
	
	// 重写activity生命周期方法以对mapview和map manager进行管理
	@Override
	protected void onDestroy(){
	        mMapView.destroy();
	        if(mBMapMan!=null){
	                mBMapMan.destroy();
	                mBMapMan=null;
	        }
	        super.onDestroy();
	}
	@Override
	protected void onPause(){
	        mMapView.onPause();
	        if(mBMapMan!=null){
                mBMapMan.stop();
	        }
	        super.onPause();
	}
	@Override
	protected void onResume(){
	        mMapView.onResume();
	        if(mBMapMan!=null){
	                mBMapMan.start();
	        }
        super.onResume();
	}
}

注意:上面的代码需要替换你自己申请的密钥和你的layout



相关文章推荐

Android版本百度地图开发(二)——图层和检索

通过上面一章我们已经了解到如何进行基本的地图应用开发,接下来的都是属于应用方面的技巧。本章主要讲解图层和检索服务。 2 地图图层 图层包括底图、交通图和卫星图。我们正常情况下看到的就是底图,可以通...

Android版本百度地图开发(四)——定位

本来这里应该继续讲述百度地图相关的知识,但继续向前会遇到定位相关的内容,所以我们先来讲解如何处理定位的内容。 1 导入库文件 我们去http://developer.baidu.com/map...

Android版本百度地图开发(五)——覆盖物

4 覆盖物 覆盖物是指叠加或覆盖到地图上的内容,覆盖物有自己的地理坐标,将根据地图的移动而移动。 百度地图支持多种类型的覆盖物: 我的位置图层(MyLocationOverlay):用于显示用...

Android百度地图——定位SDK(版本v3.1)(二)

在上一篇的基础上(百度地图定位SDK(版本v3.1)(一))浅谈在室外使用百度地图定位服务。 一、在户外使用GPS定位,修改LocationClient对象的属性即可,我在下班的路上测了下,定位结果...

Android百度地图——SDK版本v2.0.0初探

大过年的,没回家。听着外面烟花爆竹声阵阵,大冷天的一个人也不想出去转。城市不管多么繁华,一个人都是感觉“无味”。最近在研究百度地图的API使用,在使用过程中遇到些问题,有些心得吧,记录下来,希望能帮助...

Android百度地图——定位SDK(版本v3.1)(三)

转载请标明出处:http://blog.csdn.net/android_ls/article/details/8586229 实践需求:通过GPS或者3G/2G网络(基站)定位,并将定位的结果(我...

百度地图SDK开发,版本V3.0.0(三)——hello baidumap

开发工具 Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。...

百度地图SDK开发,版本V3.0.0(一)——概述

Android SDK v3.0.0s

创建一个简单android百度地图应用

1.首先新建一个安卓工程 2.申请一个属于自己的key(key 相当于百度地图的通行证) http://developer.baidu.com/map/android-mobile-apply-key...

Android应用开发-------------百度地图的配置和使用

本人知道文采不行,有些事情用文字表达的不算清楚,但我还是要坚持写,不为别人,只为积累...
  • ls703
  • ls703
  • 2014年11月21日 11:56
  • 811
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android版本百度地图开发(一)——创建应用
举报原因:
原因补充:

(最多只允许输入30个字)