1.百度地图官方API文档下载

版本  使用说明 下载
Android SDK
通用资源下载

《离线地图》提供新版离线地图(百度矢量地图)与旧版离线地图(百度栅格地图)下载。

备注:

  • 自Android SDKv2.0.0版本开始,离线地图功能使用百度矢量地图。请下载新版离线地图,即登陆网站直接选择手机品牌,型号,城市即可下载。
  • Android SDKv1.3.5版本及以前版本,离线地图功能使用百度栅格地图,请下载旧版离线地图。旧版下载入口与方法详见:http://www.cnblogs.com/milkmap/archive/2012/05/21/2511928.html
离线地图
Android SDKv2.2.0
(矢量地图版)

1. 若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。

2. 该版本SDK提供矢量版地图。

3. Lib库和示例代码下载包中均含有readme.txt,可阅读参考,有助您的开发。

4. 若使用离线地图,请下载矢量版离线地图。注意:请参阅开发指南_离线地图说明,导入至BaiduMapSdk文件夹。

5. 注意:自v2.1.3版本起,SDK采用了全新的Key验证体系,如果您选择使用v2.1.3及以后的版本,需申请全新的Key。(点击查看申请流程

Android SDKv2.2.0 lib库

Android SDKv2.2.0 类参考

Android SDKv2.2.0 示例代码

全部下载

Android SDKv1.3.5
(栅格地图版)

若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。

该版本提供栅格版底图。

Android SDKv1.3.5 lib库

Android SDKv1.3.5 类参考

Android SDKv1.3.5 示例代码

Android SDKv1.3.5开发指南

全部下载

2.申请密钥key

http://developer.baidu.com/map/android-mobile-apply-key.htm

3.建立项目

4.导入jar包

将实例中的libs文件夹拷贝到项目中,然后选中baidumapapi.jar,右键--〉build path-->add to build path

5.在activity_main.xml中添加一个view用来显示地图

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <!-- 添加显示地图的控件 -->    <com.baidu.mapapi.MapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" /></LinearLayout>

6.编写MainActivity.java对功能进行实现

package com.arlen.baidu_hello;import android.os.Bundle;import android.view.Menu;import android.widget.Toast;import com.baidu.mapapi.BMapManager;import com.baidu.mapapi.GeoPoint;import com.baidu.mapapi.MKGeneralListener;import com.baidu.mapapi.MapActivity;import com.baidu.mapapi.MapController;import com.baidu.mapapi.MapView;public class MainActivity extends MapActivity {    // 添加百度地图的相关控件    private MapView mapView;    private BMapManager bMapManager; // 加载地图的引擎    // 百度地图的key    private String keyString = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";    // 在百度地图上添加一些空间,比如放大或者缩小    private MapController mapComtroller;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mapView = (MapView) findViewById(R.id.bmapView);        bMapManager = new BMapManager(MainActivity.this);        // 必须要加载key        bMapManager.init(keyString, new MKGeneralListener() {            @Override            public void onGetPermissionState(int arg0) {                // TODO Auto-generated method stub                if (arg0 == 300) {                    Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1)                            .show();                }            }            @Override            public void onGetNetworkState(int arg0) {                // TODO Auto-generated method stub            }        });        this.initMapActivity(bMapManager);        mapView.setBuiltInZoomControls(true); // 表示可以设置缩放功能        mapComtroller = mapView.getController();        // 需要定义一个经纬度        GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1E6),                (int) (116.404 * 1E6));        // 设置一个中心点        mapComtroller.setCenter(geoPoint);        // 设置缩放级别        mapComtroller.setZoom(12);    }    @Override    protected void onDestroy() {        // TODO Auto-generated method stub        super.onDestroy();        if (bMapManager != null) {            bMapManager.destroy();            bMapManager = null;        }    }    @Override    protected void onResume() {        // TODO Auto-generated method stub        super.onResume();        if (bMapManager != null) {            bMapManager.start();        }    }    @Override    protected void onPause() {        // TODO Auto-generated method stub        super.onPause();        if (bMapManager != null) {            bMapManager.stop();        }    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    protected boolean isRouteDisplayed() {        // TODO Auto-generated method stub        return false;    }}

7.修改AndroidManifest.xml文件,指定用户权限及对不同屏幕的支持

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.arlen.baidu_hello"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="18" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.arlen.baidu_hello.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-permission android:name="android.permission.ACCESS_NETWORK_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >    </uses-permission>    <uses-permission android:name="android.permission.INTERNET" >    </uses-permission>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >    </uses-permission>    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.READ_PHONE_STATE" >    </uses-permission>    <uses-permission android:name="android.permission.CALL_PHONE" >    </uses-permission>    <supports-screens        android:anyDensity="true"        android:largeScreens="true"        android:normalScreens="false"        android:resizeable="true"        android:smallScreens="true" /></manifest>

8.至此,所有的工作基本完成,下面是运行效果图:

模拟器:

真机测试:

更多相关文章

  1. Android版本适配问题处理
  2. Android沉浸式状态栏(二)
  3. Linux通过shell脚本实现JDK版本之间的快速切换
  4. Linux通过shell脚本实现JDK版本之间的快速切换
  5. Android和Linux kernel发展史
  6. 33、Android(安卓)Support兼容包详解
  7. 回望十年Android
  8. Android(安卓)UI Action Bar之ActionBarSherlock
  9. Android(安卓)UI Action Bar之ActionBarSherlock

随机推荐

  1. LInux下安装MySQL5.6 X64版本步骤详解
  2. MySQL字符集乱码及解决方案分享
  3. Mysql开启慢SQL并分析原因
  4. 干掉一堆mysql数据库,仅需这样一个shell脚
  5. MySQL修改innodb_data_file_path参数的一
  6. MySQL执行update语句和原数据相同会再次
  7. Mysql查询很慢卡在sending data的原因及
  8. mysql慢查询优化之从理论和实践说明limit
  9. MySQL批量插入和唯一索引问题的解决方法
  10. Mysql的数据库迁移到另一个机器上的方法