本文来源:安卓博客

作者:小生、我怕怕

1)下载百度地图移动版API(Android)开发包
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,这个开发包包含两个文件:baidumapapi.jar和libBMapApiEngine.so。下载地址:http://dev.baidu.com/wiki/static/imap/files/BaiduMapApi_Lib_Android_1.0.zip

2)申请API Key
和使用Google map api一样,在使用百度地图API之前也需要获取相应的API Key。百度地图API Key与你的百度账户相关联,因此您必须先有百度帐户,才能获得API Key;并且,该Key与您引用API的程序名称有关。
百度API Key的申请要比Google的简单多了,其实只要你有百度帐号,应该不超过30秒就能完成API Key的申请。申请地址:http://dev.baidu.com/wiki/static/imap/key/

3)创建一个Android工程
这里需要强调一点:百度地图移动版api支持Android 1.5及以上系统,因此我们创建的工程应基于Android SDK 1.5及以上。
工程创建完成后,将baidumapapi.jar和libBMapApiEngine.so分别拷贝到工程的根目录及libs/armeabi目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,这样就可以在应用中使用百度地图API了。工程完整的目录结构如下图所示:

4)在布局文件中添加地图控件(res/layout/main.xml)

<?xmlversion="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"    >    <com.baidu.mapapi.MapView android:id="@+id/map_View"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true"    /></LinearLayout>

5)创建Activity继承com.baidu.mapapi.MapActivity

package com.liufeng.baidumap;import android.graphics.drawable.Drawable;import android.os.Bundle;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.GeoPoint;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapController;import com.baidu.mapapi.MapView;public class MainActivity extends MapActivity {private BMapManager mapManager;private MapView mapView;private MapController mapController;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 初始化MapActivitymapManager = new BMapManager(getApplication());// init方法的第一个参数需填入申请的API KeymapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);super.initMapActivity(mapManager);mapView = (MapView) findViewById(R.id.map_View);// 设置地图模式为交通地图mapView.setTraffic(true);// 设置启用内置的缩放控件mapView.setBuiltInZoomControls(true);// 用给定的经纬度构造一个GeoPoint(纬度,经度)GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));// 创建标记makerDrawable marker = this.getResources().getDrawable(R.drawable.iconmarka);// 为maker定义位置和边界marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());// 取得地图控制器对象,用于控制MapViewmapController = mapView.getController();// 设置地图的中心mapController.setCenter(point);// 设置地图默认的缩放级别mapController.setZoom(12);}@Overrideprotected boolean isRouteDisplayed() {return false;}@Overrideprotected void onDestroy() {if (mapManager != null) {mapManager.destroy();mapManager = null;}super.onDestroy();}@Overrideprotected void onPause() {if (mapManager != null) {mapManager.stop();}super.onPause();}@Overrideprotected void onResume() {if (mapManager != null) {mapManager.start();}super.onResume();}}


6)在AndroidManifest.xml中配置


<?xmlversion="1.0"encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.liufeng.baidumap"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".MainActivity" android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>    <uses-sdk android:minSdkVersion="4" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" /></manifest>

7)运行结果

更多相关文章

  1. 在Android中修改快捷方式的图标
  2. react native android百度地图定位
  3. android百度地图自定义marker,使用网络图片
  4. 谷歌开发工具Android(安卓)Studio安装使用图文教程
  5. Android(安卓): gen already exists but is not a source folder
  6. Android(安卓)入门(2)-使用intent穿梭于活动
  7. Android引路蜂地图开发示例:地址反编码
  8. Android(安卓)厘米转dip、px转dip 地图比例尺长度计算
  9. android studio 2.3 NDK

随机推荐

  1. Android关于短信加密
  2. Android 如何在Eclipse中查看Android API
  3. android 视频缩略图之 MediaStore
  4. Android(安卓)常见问题解决记录
  5. Android 下使用 JSON 实现 HTTP 请求,外加
  6. Android(安卓)判断当前局域网是否有网络
  7. Android Market api
  8. Android(安卓)数据库升级 数据迁移 数据
  9. 在android虚拟机中安装删除应用程序
  10. Android新的menu实现――ActionMode