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

转自:http://blog.csdn.net/jariwsz

百度地图在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文件中:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <!-- 使用网络功能所需权限 -->  
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >  
  3. </uses-permission>  
  4. <uses-permission android:name="android.permission.INTERNET" >  
  5. </uses-permission>  
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >  
  7. </uses-permission>  
  8. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >  
  9. </uses-permission>  
  10. <!-- SDK离线地图和cache功能需要读写外部存储器 -->  
  11. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >  
  12. </uses-permission>  
  13. <!-- 获取设置信息和详情页直接拨打电话需要以下权限 -->  
  14. <uses-permission android:name="android.permission.READ_PHONE_STATE" >  
  15. </uses-permission>  
  16. <uses-permission android:name="android.permission.CALL_PHONE" >  
  17. </uses-permission>  
  18. <!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->  
  19. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >  
  20. </uses-permission>  
  21.   
  22. <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >  
  23. </permission>  
  24.   
  25. <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >  
  26. </uses-permission>  
  27. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >  
  28. </uses-permission>  
  29. <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >  
  30. </uses-permission>  
  31. <uses-permission android:name="android.permission.ACCESS_GPS" />  

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

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

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <!-- BaiduMap测试 -->  
  2. <activity  
  3.     android:name="com.freesoft.activity.baidu.BaiduMapActivity"  
  4.     android:configChanges="orientation|keyboardHidden"  
  5.     android:screenOrientation="sensor" >  
  6. </activity>  

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

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.  <supports-screens android:largeScreens="true"  
  2. android:normalScreens="true"  
  3. android:smallScreens="true"  
  4. android:resizeable="true"  
  5. android:anyDensity="true"/>  
  6.  <uses-sdk  
  7.      android:minSdkVersion="7"  
  8.      android:targetSdkVersion="7" />  

1.4 添加布局文件

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

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.             android:orientation="vertical"  
  4.             android:layout_width="fill_parent"  
  5.             android:layout_height="fill_parent">  
  6.             <TextView android:layout_width="fill_parent"  
  7.                     android:layout_height="wrap_content"  
  8.                     android:text="hello world" />  
  9.             <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"  
  10.                     android:layout_width="fill_parent"  
  11.                     android:layout_height="fill_parent"  
  12.                     android:clickable="true" />  
  13. </LinearLayout>  

1.5 Activity类代码

最重要的Activity代码来了:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public class BaiduMapActivity extends Activity {  
  2.     private BMapManager mBMapMan = null;  
  3.     private MapView mMapView = null;  
  4.   
  5.       
  6.     @Override  
  7.     protected void onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         mBMapMan=new BMapManager(getApplication());  
  10.         mBMapMan.init("这里填入你自己申请的Key"null);    
  11.         //注意:请在试用setContentView前初始化BMapManager对象,否则会报错  
  12.         setContentView(R.layout.activity_baidumap);  
  13.         mMapView=(MapView)findViewById(R.id.bmapsView);  
  14.         mMapView.setBuiltInZoomControls(true);  
  15.         //设置启用内置的缩放控件  
  16.         MapController mMapController=mMapView.getController();  
  17.         // 得到mMapView的控制权,可以用它控制和驱动平移和缩放  
  18.         GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));  
  19.         //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)  
  20.         mMapController.setCenter(point);//设置地图中心点  
  21.         mMapController.setZoom(12);//设置地图zoom级别  
  22.     }  
  23.       
  24.     // 重写activity生命周期方法以对mapview和map manager进行管理  
  25.     @Override  
  26.     protected void onDestroy(){  
  27.             mMapView.destroy();  
  28.             if(mBMapMan!=null){  
  29.                     mBMapMan.destroy();  
  30.                     mBMapMan=null;  
  31.             }  
  32.             super.onDestroy();  
  33.     }  
  34.     @Override  
  35.     protected void onPause(){  
  36.             mMapView.onPause();  
  37.             if(mBMapMan!=null){  
  38.                 mBMapMan.stop();  
  39.             }  
  40.             super.onPause();  
  41.     }  
  42.     @Override  
  43.     protected void onResume(){  
  44.             mMapView.onResume();  
  45.             if(mBMapMan!=null){  
  46.                     mBMapMan.start();  
  47.             }  
  48.         super.onResume();  
  49.     }  
  50. }  

注意: 上面的代码需要替换你自己申请的密钥和你的layout
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值