使用百度地图API

百度地图提供了丰富的API, 可以使我们很方便的调用百度地图实现定位和导航功能。

1. 申请百度开发者账号

要使用百度地图的API,首先可以登录百度开发者的首页(http://developer.baidu.com/),注册一个百度的开发者账号。在开发者首页我们可以看到众多的百度提供的开发工具。选择百度地图,进入百度地图开放平台首页(http://developer.baidu.com/map/)

2. 申请API Key

接下来要申请API Key。只有申请了API Key 才可以在自己的应用中使用百度地图。可以点击“申请密钥”, 也可以点击页面右上角的“API控制台”

在这里会显示所有你已经申请过的API Key。你可以点击“创建应用”来创建一个新的API Key。

应用名称可以随便填;应用类型选择Android SDK;安全码是 数字签名+;+包名。数字签名可以通过Eclipse中的Windows->Preferences->Android->Build 中查看到;包名就是应用程序所在的包。

3. 下载百度地图SDK

如上图,进入SDK下载页面后,选择需要的模块下载。我在这里只下载了地图的功能。

下载成功以后应该是一个压缩包,解压以后如图所示

将其中的.jar 文件和armeabi 目录拷贝到项目的libs目录下就可以了。

4. 调用百度地图API

如何在自己的项目中调用百度地图的API, 百度的Wiki 上有详细的说明http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

1)首先就是先向application 中添加密钥

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>

上面value 属性引号中的内容用自己刚刚申请的AK替换。

2)接下来要申明一堆权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

3)接下来在布局中添加地图控件

    <com.baidu.mapapi.map.MapView
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />

4)在Activity中初始化SDK

public class MainActivity extends Activity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
    }  
}

5)创建地图Activity,管理生命周期

public class MainActivity extends Activity {  
    MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }

至此,百度地图就创建完毕了。


注:在一些较老的资料上提到用BMapManager 创建地图,但这种方法好像在最新版本的SDK中被放弃了。。。已经找不到BMapManager 的类了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值