http://www.cnblogs.com/hxxy2003/archive/2011/08/09/2131951.html
最近对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 }
运行结果如下:
-