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

来源:互联网 发布:电商网站模板源码 编辑:程序博客网 时间:2024/06/10 00:54

百度地图在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;@Overrideprotected 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进行管理@Overrideprotected void onDestroy(){        mMapView.destroy();        if(mBMapMan!=null){                mBMapMan.destroy();                mBMapMan=null;        }        super.onDestroy();}@Overrideprotected void onPause(){        mMapView.onPause();        if(mBMapMan!=null){                mBMapMan.stop();        }        super.onPause();}@Overrideprotected void onResume(){        mMapView.onResume();        if(mBMapMan!=null){                mBMapMan.start();        }        super.onResume();}}

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



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 靠美食成为星际首富 夫人她每天都想摸鱼摆烂 寒门重生女 穿书:侧妃她要改剧本 作妖小青梅总想遇见我 重生成团宠文炮灰 全师门就我一个人是废柴 反派家的团宠崽崽是神兽 越界臣服 重生之鱼刺救我狗命 修仙:哈哈哈鸡汤来咯 萌宝来袭:带着空间穿九零 快跑,宿主她不对劲 小哭包她软软糯糯 超甜!重生后左相被我撩到腿软 超真实探案推理游戏 惊!霍总怀里的小娇妻失忆后想逃婚 我和暴君有个崽 荒野求生我靠传播非遗爆红全世界 肆意难撩 女尊之夫郎他娇软又呆萌 穿书后,小茶精在疯批怀里撒娇 拯救六界从谈恋爱开始 重生后前世宿敌说要养我 她的沙雕又暴露了 在虐文里绑定了男主系统 我在末世成了领主大人 玄学老祖上综艺后轰动全球了 我继承了老公的神位 仵作掌中娇 世子爷她不可能是女的 穿进红楼后,我成了人生赢家 假死后夫人她称霸黑莲界 奶萌小团宠她觉醒了种田系统 巨星的大佬青梅 总裁的小撩精又生气了 开荒种田:农门辣妻有空间 签到后,小白花她在娱乐圈翻红了 江月照 魂飞魄散的上古大仙在修真界诈尸 快穿:大佬她又抢了反派剧本