频道栏目
首页 > 资讯 > Android基础教程 > 正文

第102章、百度地图初探(从零开始学Android)

16-02-02        来源:[db:作者]  
收藏   我要投稿
地图以前都是基本属于导航专有的,但伴随着智能机的普及,手机地图也成为了智能机的必备,而且谷歌、百度、凯立德、高德目前对地图的竞争似乎也进入了白热化。也许,在以往感觉这个东东是可望不可及的,而今天伴随着各个地图供应商API的开放,对我们开发者也变得越来越容易了。

我们今天对百度地图初探,以揭开这层神秘的面纱。

准备工作:

(1)第一步、申请密钥;
该套SDK提供的服务是免费的,接口无使用次数限制。您需先申请密钥(key),才可使用该套SDK。

申请网址:http://developer.baidu.com/map/android-mobile-apply-key.htm

填写完毕之后,经审核,百度会给您一个密钥。例如:

(2)第二步,下载Android SDKv2.0.0(矢量地图版)

../201510/GridViewLiveTiles.html

../201510/GridViewLiveTiles.html

准备工作至此已经结束。

 

一、工程配置

1、第一步,在工程里新建libs文件夹,将开发包里的baidumapapi_v2_0_0.jar拷贝到libs根目录下,将libBMapApiEngine_v2_0_0.so和libvi_voslib.so 拷贝到libs\armeabi目录下,拷贝完成后的工程目录如下图所示;

2、第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_v2_0_0.jar,确定后返回。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

二、设计界面

1、布局文件

打开res/layout/activity_main.xml文件。
输入以下代码:

[html] view plain copy
 
  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="match_parent"  
  5.         android:layout_height="match_parent">  
  6.           
  7.     <com.baidu.mapapi.map.MapView   
  8.         android:id="@+id/mapview"  
  9.         android:layout_width="match_parent"  
  10.         android:layout_height="match_parent"  
  11.         android:clickable="true" />  
  12.           
  13. </LinearLayout>  

注:使用百度地图要使用<com.baidu.mapapi.MapView ...>,这个就是用来显示地图的MapView控件。
三、程序文件

1、MainActivity.java
打开“src/com.genwoxue.baidumap/MainActivity.java”文件。
然后输入以下代码:

[java] view plain copy
 
  1. package com.genwoxue.baidumap;  
  2.   
  3. //导入地图相关包  
  4. import android.app.Activity;  
  5. import android.os.Bundle;  
  6. import com.baidu.mapapi.BMapManager;  
  7. import com.baidu.mapapi.map.MapController;  
  8. import com.baidu.mapapi.map.MapView;  
  9. import com.baidu.platform.comapi.basestruct.GeoPoint;  
  10.   
  11. public class MainActivity extends Activity {  
  12.      BMapManager mBMapMan = null;   
  13.      MapView mMapView = null;  
  14.       
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.           
  18.         super.onCreate(savedInstanceState);  
  19.         //初始化BMapManager对象(注意:请在试用setContentView前初始化,否则会报错)  
  20.         mBMapMan=new BMapManager(getApplication());  
  21.         mBMapMan.init("9BFF43A016092BFE3698B8E456B6896FCFC029EE", null);    
  22.         setContentView(R.layout.activity_main);  
  23.           
  24.         mMapView=(MapView)findViewById(R.id.mapview);  
  25.         mMapView.setBuiltInZoomControls(true);  
  26.           
  27.         //设置启用内置的缩放控件  
  28.         MapController mMapController=mMapView.getController();  
  29.         // 得到mMapView的控制权,可以用它控制和驱动平移和缩放  
  30.         GeoPoint point =new GeoPoint((int)(34.7569* 1E6),(int)(113.6632* 1E6));  
  31.         //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)  
  32.         mMapController.setCenter(point);//设置地图中心点  
  33.         mMapController.setZoom(12);//设置地图zoom级别  
  34.     }  
  35.       
  36.     @Override  
  37.     protected void onDestroy(){  
  38.             mMapView.destroy();  
  39.             if(mBMapMan!=null){  
  40.                 mBMapMan.destroy();  
  41.                 mBMapMan=null;  
  42.             }  
  43.             super.onDestroy();  
  44.     }  
  45.     @Override  
  46.     protected void onPause(){  
  47.             mMapView.onPause();  
  48.             if(mBMapMan!=null){  
  49.                 mBMapMan.stop();  
  50.             }  
  51.             super.onPause();  
  52.     }  
  53.     @Override  
  54.     protected void onResume(){  
  55.             mMapView.onResume();  
  56.             if(mBMapMan!=null){  
  57.                 mBMapMan.start();  
  58.             }  
  59.             super.onResume();  
  60.     }  
  61. }  


四、配置文件
打开“AndroidManifest.xml”文件。
然后输入以下代码:

[html] view plain copy
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.baidumap"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="15" />  
  10.       
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/ic_launcher"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="com.genwoxue.baidumap.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.                 <category android:name="android.intent.category.LAUNCHER" />  
  22.             </intent-filter>  
  23.         </activity>  
  24.         <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>  
  25.     </application>  
  26.       
  27.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  28.     <uses-permission android:name="android.permission.INTERNET" />  
  29.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  30.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  31.     <!-- SDK离线地图和cache功能需要读写外部存储器 -->  
  32.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  33.           
  34.     <supports-screens android:largeScreens="true"  
  35.                 android:normalScreens="true"  
  36.             android:smallScreens="true"  
  37.             android:resizeable="true"  
  38.             android:anyDensity="true"/>  
  39.   
  40. </manifest>  


五、运行结果

 

  

相关TAG标签
上一篇:第82章、异步处理工具类:AsyncTask(从零开始学Android)
下一篇:第104章、Android访问WebService(从零开始学Android)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站