最近做基于百度地图LBS应用,看了老罗的视屏,乖乖,想必很多人按他的步骤建了开发环境后地图加载不出来或者根本运行不了。今天我分享下我的百度地图开发环境搭建过程: 1.开发工具
Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。
2.工程配置
第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_1_1.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so 拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;
注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。
第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_v2_1_1.jar,确定后返回。
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。
3.显示地图
百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:
第一步:创建并配置工程(具体方法参见工程配置部分的介绍);
第二步:在Manifest中添加使用权限及Android版本支持;
常用使用权限如下(开发者可根据自身程序需求,添加所需权限):(我用到的权限)
-
-
<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>
复制代码
配置Activity:
-
<activity android:name=".MapDemo"
-
android:screenOrientation="sensor"
-
android:configChanges="orientation|keyboardHidden">
-
</activity>
复制代码
添加屏幕及版本支持:
-
<supports-screens android:largeScreens="true"
-
android:normalScreens="true"
-
android:smallScreens="true"
-
android:resizeable="true"
-
android:anyDensity="true"/>
-
<uses-sdkandroid:minSdkVersion="7"></uses-sdk>
复制代码
第三步:在布局xml文件中添加地图控件,布局文件保存为activity_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">
-
<TextView android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="hello world" />
-
<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
android:clickable="true" />
-
</LinearLayout>
复制代码
第四步:创建地图Activity,并import相关类:
-
import android.app.Activity;
-
import android.content.res.Configuration;
-
import android.os.Bundle;
-
import android.view.Menu;
-
import android.widget.FrameLayout;
-
import android.widget.Toast;
-
import com.baidu.mapapi.BMapManager;
-
import com.baidu.mapapi.map.MKMapViewListener;
-
import com.baidu.mapapi.map.MapController;
-
import com.baidu.mapapi.map.MapPoi;
-
import com.baidu.mapapi.map.MapView;
-
import com.baidu.platform.comapi.basestruct.GeoPoint;
-
-
public class MyMapActivity extends Activity{
-
@Override
-
public void onCreate(Bundle savedInstanceState){
-
}
-
}
复制代码
第五步:初始化地图Activity、使用key:
在MyMapActivity中定义成员变量:
-
BMapManager mBMapMan = null;
-
MapView mMapView = null;
复制代码
在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”
-
super.onCreate(savedInstanceState);
-
mBMapMan=new BMapManager(getApplication());
-
mBMapMan.init("我的Key", null);
-
//注意:请在试用setContentView前初始化BMapManager对象,否则会报错
-
setContentView(R.layout.activity_main);
-
mMapView=(MapView)findViewById(R.id.bmapsView);
-
mMapView.setBuiltInZoomControls(true);
-
//设置启用内置的缩放控件
-
MapController mMapController=mMapView.getController();
-
// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
-
GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));
-
//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
-
mMapController.setCenter(point);//设置地图中心点
-
mMapController.setZoom(12);//设置地图zoom级别
复制代码
重写以下方法,管理API
-
@Override
-
protected void onDestroy(){
-
mMapView.destroy();
-
if(mBMapMan!=null){
-
mBMapMan.destroy();
-
mBMapMan=null;
-
}
-
super.onDestroy();
-
}
-
@Override
-
protected void onPause(){
-
mMapView.onPause();
-
if(mBMapMan!=null){
-
mBMapMan.stop();
-
}
-
super.onPause();
-
}
-
@Override
-
protected void onResume(){
-
mMapView.onResume();
-
if(mBMapMan!=null){
-
mBMapMan.start();
-
}
-
super.onResume();
-
}
复制代码
完成以上步骤后,运行程序,即可在您的应用中显示如下地图:
注:运行时换成自己的key,不懂的加QQ619189810
附件:
BaiduMap_AndroidSDK_v2.1.1_All.zip (3.88 MB, 下载次数: 331)
hello baidu ditu.zip (4.58 MB, 下载次数: 578)
|