百度地图应用开发(一)
最近对LBS比较感兴趣,在研究百度地图。先了解下百度地图的大概吧!
以上是百度地图在android平台上的开发指南。
基于百度地图的应用开发和google地图一样,需要一个Key,所以我们要申请一下,相对于google地图的Key来说,百度地图的Key的申请是很简单的。
申请Key的网址: http://dev.baidu.com/wiki/static/imap/key/ 当然要求是你必须得注册百度。
在百度地图的应用开发中,在Manifest要添加如下权限:
-
<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>具体权限是什么大家可以查下文档,在这里就不多说了。另外还要加上android版本的支持,如下:
-
<supports-screens android:largeScreens="true"
-
android:normalScreens="true" android:smallScreens="true"
-
android:resizeable="true" android:anyDensity="true"/>
-
<uses-sdk android:minSdkVersion="3"></uses-sdk>当然还要导入支持百度地图开发的相关的包(指南上面有下载),以下是我的项目文件:
main.xml
<?xml version="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/bmapsView"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>MainActivity.java
1 package com.baidumap;
2
3 import com.baidu.mapapi.BMapManager;
4 import com.baidu.mapapi.GeoPoint;
5 import com.baidu.mapapi.MapActivity;
6 import com.baidu.mapapi.MapController;
7 import com.baidu.mapapi.MapView;
8
9 import android.app.Activity;
10 import android.os.Bundle;
11
12 public class MainActivity extends MapActivity {
13 private BMapManager mBMapMan;
14 @Override
15 public void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.main);
18 mBMapMan = new BMapManager(getApplication());
19 mBMapMan.init("205114502786B06C4C95CEB0F55822F25E46AED2", null);
20 super.initMapActivity(mBMapMan);
21
22 MapView mMapView = (MapView) findViewById(R.id.bmapsView);
23 mMapView.setBuiltInZoomControls(true); //设置启用内置的缩放控件
24
25 mMapView.setTraffic(true);
26
27 MapController mMapController = mMapView.getController(); // 得到mMapView的控制权,可以用它控制和驱动平移和缩放
28 GeoPoint point = new GeoPoint((int) (23.141238 * 1E6),
29 (int) (113.342331 * 1E6)); //用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
30 mMapController.setCenter(point); //设置地图中心点
31 mMapController.setZoom(12); //设置地图zoom级别
32 }
33
34 @Override
35 protected void onDestroy() {
36 if (mBMapMan != null) {
37 mBMapMan.destroy();
38 mBMapMan = null;
39 }
40 super.onDestroy();
41 }
42 @Override
43 protected void onPause() {
44 if (mBMapMan != null) {
45 mBMapMan.stop();
46 }
47 super.onPause();
48 }
49 @Override
50 protected void onResume() {
51 if (mBMapMan != null) {
52 mBMapMan.start();
53 }
54 super.onResume();
55 }
56 @Override
57 protected boolean isRouteDisplayed() {
58 // TODO Auto-generated method stub
59 return false;
60 }
61 }运行结果如下:
-