百度地图SDK for Android【Demo地图展示】
jopen
12年前
我将通过下面的讲解,教大家一步一步构建最基本的百度地图应用——基础地图展示:
第一步:创建Android工程、导入百度地图开发包;
配置好的工程如下图所示:
第二步:在AndroidManifest.xml中添加各种权限;
代码如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.baidumap.basemap" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true"/> <!-- 添加屏幕支持 --> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.baidumap.basemap.MainActivity" android:label="@string/app_name" android:screenOrientation="sensor" android:configChanges="orientation|keyboardHidden"> <!-- 注意添加转屏的相关设置 --> <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.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <!-- SDK离线地图和cache功能需要读写外部存储器 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 获取设置信息和详情页直接拨打电话需要以下权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> </manifest>
第三步:在布局文件中添加百度地图控件(mapview);
代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <!-- 放入百度地图的mapview --> <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true"/> </RelativeLayout>
第四步:在主类中定义mapview对象和地图管理对象,在oncreate方法里需要首先初始化地图管理对象,然后初始化mapview对象,并且设置mapview的相应状态;
代码如下:
import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.map.MapController; import com.baidu.mapapi.map.MapView; import com.baidu.platform.comapi.basestruct.GeoPoint; import android.os.Bundle; import android.app.Activity; public class MainActivity extends Activity { BMapManager bMapManager = null; // 定义管理sdk的对象 MapView mapView = null; // 定义mapview对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错 bMapManager = new BMapManager(getApplication()); bMapManager.init("输入您申请的key", null); setContentView(R.layout.activity_main); // 初始化mapview对象,并且设置显示缩放控件 mapView = (MapView) findViewById(R.id.bmapsView); mapView.setBuiltInZoomControls(true); // 定义地图控件,获取mapview的控制,并把地图范围定位北京市 MapController mapController = mapView.getController(); GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6)); mapController.setCenter(point); mapController.setZoom(12); } //注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态 @Override protected void onResume() { // TODO Auto-generated method stub mapView.onResume(); if(bMapManager!=null){ bMapManager.start(); } super.onResume(); } @Override protected void onDestroy() { // TODO Auto-generated method stub mapView.destroy(); if(bMapManager!=null){ bMapManager.destroy(); bMapManager=null; } super.onDestroy(); } @Override protected void onPause() { // TODO Auto-generated method stub mapView.onPause(); if(bMapManager!=null){ bMapManager.stop(); } super.onPause(); } }运行程序即可调启百度地图服务,展示您所需的地图,结果如下所示:</span> 来自:http://blog.csdn.net/baidulbs/article/details/8564052