android百度地圖開發,android百度地圖api
開發android怎么引入百度地圖
首先需要在百度地圖開發平臺上下載所需要的文檔和功能,由于最新版的3.0.0的不是很熟悉,我這里用的是稍舊一點的版本:2.4.1版的;這里是下載地址:。我是在這個頁面的右下角點擊歷史版本下載的2.4.1版的:
創新互聯服務緊隨時代發展步伐,進行技術革新和技術進步,經過十年的發展和積累,已經匯集了一批資深網站策劃師、設計師、專業的網站實施團隊以及高素質售后服務人員,并且完全形成了一套成熟的業務流程,能夠完全依照客戶要求對網站進行成都網站建設、成都做網站、建設、維護、更新和改版,實現客戶網站對外宣傳展示的首要目的,并為客戶企業品牌互聯網化提供全面的解決方案。
下載之后它里面有這樣一個壓縮文件:
解壓開之后是這樣的三個壓縮包:
其中Sample是它的Demo,解壓開之后是這樣的:
打開之后里面是各種各樣功能的demo;
工程配置
第一步:將開發包里的lib文件夾整個拷貝,然后粘貼到你的項目文件夾下,覆蓋原有的文件,然后是這樣的:
第二步:在工程屬性-Java Build Path-Libraries中選擇“Add External JARs”,選定baidumapapi_v2_4_1.jar,確定后返回。
通過以上兩步操作后,您就可以正常使用百度地圖SDK為您提供的全部功能了。
注意:由于adt插件升級,若您使用Eclipse adt 22的話,需要對開發環境進行相應的設置,方法如下:
1. 在Eclipse 中選中工程,右鍵選 Properties-Java Build Path-Order and Export 使 Android Private Libraries處于勾選狀態;
2. Project - clean- clean all .
顯示百度地圖
百度地圖SDK為開發者提供了便捷的顯示百度地圖數據的接口,通過以下幾步操作,即可在您的應用中使用百度地圖數據:
第一步:創建并配置工程(具體方法參見工程配置部分的介紹);
第二步:在AndroidManifest中添加開發密鑰、所需權限等信息;
(1)在application中添加開發密鑰
application
meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="開發者 key" /
/application
(2)添加所需權限
uses-permission android:name="android.permission.GET_ACCOUNTS" /
uses-permission android:name="android.permission.USE_CREDENTIALS" /
uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /
uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /
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.CHANGE_WIFI_STATE" /
uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /
uses-permission android:name="android.permission.READ_PHONE_STATE" /
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /
uses-permission android:name="android.permission.BROADCAST_STICKY" /
uses-permission android:name="android.permission.WRITE_SETTINGS" /
uses-permission android:name="android.permission.READ_PHONE_STATE" /
第三步,在布局xml文件中添加地圖控件;
com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /
第四步,加載配置項:
package com.example.mybaidumap;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
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;
import android.view.Menu;
public class MainActivity extends Activity implements MKGeneralListener{
private BMapManager mBMapMan = null;
private MapView mMapView = null;
private MapController mMapController = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBMapMan = new BMapManager(getApplication());
mBMapMan.init(this);
setContentView(R.layout.activity_main);
// 獲取地圖控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mMapView.setBuiltInZoomControls(true);//設置縮放
}
@Override
protected void onDestroy() {
super.onDestroy();
// 在activity執行onDestroy時執行mMapView.onDestroy(),實現地圖生命周期管理
mMapView.destroy();
}
@Override
protected void onResume() {
super.onResume();
// 在activity執行onResume時執行mMapView. onResume (),實現地圖生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
// 在activity執行onPause時執行mMapView. onPause (),實現地圖生命周期管理
mMapView.onPause();
}
@Override
public void onGetNetworkState(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onGetPermissionState(int arg0) {
// TODO Auto-generated method stub
}
}
最后一步:運行你的app就可以看到百度地圖了。
android 開發 百度地圖
你好:
首先到百度地圖API,看你需要android開發的類型,
可以選擇這4個:Android地圖SDK Android定位SDK Android導航SDK Android全景SDK;
你看需要的是哪一個,點進去,然后會看到開發指南,第一步申請對應的key,
然后下載API對應的demo,把lib都引進去,照著demo做,demo沒有的就查看對應組件的類參考,
做一次就很容易了
如何在Android應用中使用百度地圖api
在Android應用中使用百度地圖api的方法:
1)下載百度地圖移動版API(Android)開發包
要在Android應用中使用百度地圖API,就需要在工程中引用百度地圖API開發包,這個開發包包含兩個文件:baidumapapi.jar和libBMapApiEngine.so。下載地址:
2)申請API Key
和使用Google map api一樣,在使用百度地圖API之前也需要獲取相應的API Key。百度地圖API Key與你的百度賬戶相關聯,因此您必須先有百度帳戶,才能獲得API Key;并且,該Key與您引用API的程序名稱有關。
百度API Key的申請要比Google的簡單多了,其實只要你有百度帳號,應該不超過30秒就能完成API Key的申請。申請地址:
3)創建一個Android工程
這里需要強調一點:百度地圖移動版api支持Android 1.5及以上系統,因此我們創建的工程應基于Android SDK 1.5及以上。
工程創建完成后,將baidumapapi.jar和libBMapApiEngine.so分別拷貝到工程的根目錄及libs/armeabi目錄下,并在工程屬性-Java?Build Path-Libraries中選擇“Add JARs”,選定baidumapapi.jar,這樣就可以在應用中使用百度地圖API了。工程完整的目錄結構如下圖所示:
4)在布局文件中添加地圖控件(res/layout/main.xml)
[xhtml]?view?plain?copy
?xml?version="1.0"?encoding="utf-8"???
LinearLayout?xmlns:android=""??
android:orientation="vertical"??
android:layout_width="fill_parent"??
android:layout_height="fill_parent"??
com.baidu.mapapi.MapView?android:id="@+id/map_View"??
android:layout_width="fill_parent"??
android:layout_height="fill_parent"??
android:clickable="true"??
/??
/LinearLayout
5)創建Activity繼承com.baidu.mapapi.MapActivity
[java]?view?plain?copy
package?com.liufeng.baidumap;??
import?android.graphics.drawable.Drawable;??
import?android.os.Bundle;??
import?com.baidu.mapapi.BMapManager;??
import?com.baidu.mapapi.GeoPoint;??
import?com.baidu.mapapi.MapActivity;??
import?com.baidu.mapapi.MapController;??
import?com.baidu.mapapi.MapView;??
public?class?MainActivity?extends?MapActivity?{??
private?BMapManager?mapManager;??
private?MapView?mapView;??
private?MapController?mapController;??
@Override??
public?void?onCreate(Bundle?savedInstanceState)?{??
super.onCreate(savedInstanceState);??
setContentView(R.layout.main);??
//?初始化MapActivity??
mapManager?=?new?BMapManager(getApplication());??
//?init方法的第一個參數需填入申請的API?Key??
mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4",?null);??
super.initMapActivity(mapManager);??
mapView?=?(MapView)?findViewById(R.id.map_View);??
//?設置地圖模式為交通地圖??
mapView.setTraffic(true);??
//?設置啟用內置的縮放控件??
mapView.setBuiltInZoomControls(true);??
//?用給定的經緯度構造一個GeoPoint(緯度,經度)??
GeoPoint?point?=?new?GeoPoint((int)?(47.118440?*?1E6),?(int)?(87.493147?*?1E6));??
//?創建標記maker??
Drawable?marker?=?this.getResources().getDrawable(R.drawable.iconmarka);??
//?為maker定義位置和邊界??
marker.setBounds(0,?0,?marker.getIntrinsicWidth(),?marker.getIntrinsicHeight());??
//?取得地圖控制器對象,用于控制MapView??
mapController?=?mapView.getController();??
//?設置地圖的中心??
mapController.setCenter(point);??
//?設置地圖默認的縮放級別??
mapController.setZoom(12);??
}??
@Override??
protected?boolean?isRouteDisplayed()?{??
return?false;??
}??
@Override??
protected?void?onDestroy()?{??
if?(mapManager?!=?null)?{??
mapManager.destroy();??
mapManager?=?null;??
}??
super.onDestroy();??
}??
@Override??
protected?void?onPause()?{??
if?(mapManager?!=?null)?{??
mapManager.stop();??
}??
super.onPause();??
}??
@Override??
protected?void?onResume()?{??
if?(mapManager?!=?null)?{??
mapManager.start();??
}??
super.onResume();??
}??
}
6)在AndroidManifest.xml中配置
[xhtml]?view?plain?copy
?xml?version="1.0"?encoding="utf-8"???
manifest?xmlns:android=""??
package="com.liufeng.baidumap"??
android:versionCode="1"??
android:versionName="1.0"??
application?android:icon="@drawable/icon"?android:label="@string/app_name"??
activity?android:name=".MainActivity"?android:label="@string/app_name"??
intent-filter??
action?android:name="android.intent.action.MAIN"?/??
category?android:name="android.intent.category.LAUNCHER"?/??
/intent-filter??
/activity??
/application??
uses-sdk?android:minSdkVersion="4"?/??
uses-permission?android:name="android.permission.ACCESS_NETWORK_STATE"?/??
uses-permission?android:name="android.permission.ACCESS_FINE_LOCATION"?/??
uses-permission?android:name="android.permission.INTERNET"?/??
uses-permission?android:name="android.permission.WRITE_EXTERNAL_STORAGE"?/??
uses-permission?android:name="android.permission.ACCESS_WIFI_STATE"?/??
uses-permission?android:name="android.permission.CHANGE_WIFI_STATE"?/??
uses-permission?android:name="android.permission.READ_PHONE_STATE"?/??
/manifest
android百度地圖怎么開發
一、基本概念:
(一)、百度地圖:
百度地圖 Android SDK是一套基于Android 2.1及以上版本設備的應用程序接口。 您可以使用該套 SDK開發適用于Android系統移動設備的地圖應用,通過調用地圖SDK接口,您可以輕松訪問百度地圖服務和數據, 構建功能豐富、交互性強的地圖類應用程序。
百度地圖Android SDK提供的所有服務是免費的,接口使用無次數限制。您需申請密鑰(key)后, 才可使用百度地圖Android SDK。
(二)、LBS:(Location based Service)基于位置的服務
基于位置的服務,它是通過電信移動運營商的無線電通訊網絡(如GSM網、CDMA網)或外部定位方式(如GPS)獲取移動終端用戶的位置信息(地理坐標,或大地坐標),在地理信息系統(外語縮寫:GIS、外語全稱:Geographic Information System)平臺的支持下,為用戶提供相應服務的一種增值業務。
二、百度地圖使用步驟:【參照()】
(一)、HelloBaiduMap:
1、第一步:申請百度地圖密鑰(API_KEY):
2、第二步:在工程里新建libs文件夾,將開發包里的baidumapapi_vX_X_X.jar拷貝到libs根目錄下,將libBaiduMapSDK_vX_X_X.so拷貝到libs\armeabi目錄下(官網demo里已有這兩個文件,如果要集成到自己的工程里,就需要自己添加),拷貝完成后的工程目錄如下圖所示;
注:liblocSDK3.so和locSDK_3.1.jar為百度定位SDK所使用資源,開發者可根據實際需求自行添加。
3、第三步:在AndroidManifest中添加開發密鑰、所需權限等信息;
application
meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="P3G69b5s87YG5M31f8A7oyLW"/
/application
uses-permissionandroid:name="android.permission.GET_ACCOUNTS"/
uses-permissionandroid:name="android.permission.USE_CREDENTIALS"/
uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS"/
uses-permissionandroid:name="android.permission.AUTHENTICATE_ACCOUNTS"/
uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/
uses-permissionandroid:name="android.permission.INTERNET"/
uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS"/
uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/
uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/
uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/
uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/
uses-permissionandroid:name="android.permission.BROADCAST_STICKY"/
uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/
uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/
4、第四步:在布局文件中添加地圖控件:
com.baidu.mapapi.map.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/
5、第五步:在應用程序創建時初始化 SDK引用的Context 全局變量:
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext
// 注意該方法要再setContentView方法之前實現
SDKInitializer.initialize(getApplicationContext());
// 裝載布局文件
setContentView(R.layout.activity_main);
}
6、第六步:創建地圖Activity,管理地圖生命周期:
publicclass MainActivity extends Activity {
private MapView mapView;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 在使用SDK各組件之前初始化context信息,傳入ApplicationContext
// 注意該方法要再setContentView方法之前實現
SDKInitializer.initialize(getApplicationContext());
// 裝載布局文件
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.mapView);
}
@Override
protectedvoid onResume() {
super.onResume();
mapView.onResume();
}
@Override
protectedvoid onPause() {
super.onPause();
mapView.onPause();
}
@Override
protectedvoid onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
}
(二)、基礎地圖:
1、實現基礎地圖的操作步驟:
布局文件中使用MapView;
初始化SDK,并檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
初始化BaiduMap對象;
對MapView進行findViewById();
MapView對象調用getMap(),返回BaiduMap;
設置BaiduMap;
setMapType();
setTrafficEnabled();
(三)、POI搜索:
1、實現POI搜索的操作步驟:
布局文件中使用fragment,用來實現對BaiduMap的加載;
class="com.baidu.mapapi.map.SupportMapFragment"
當前Activity繼承于FragementActivity;
初始化SDK,并檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
備注:該兩句話必須放在setContentView()之前。
初始化BaiduMap對象;
baiduMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.fragment_poi_map)).getBaiduMap();
初始化PoiSearch對象;
PoiSearch.newInstance();
給PoiSearch對象設置監聽器;
setOnGetPoiSearchResultListener(),重寫onGetPoiResult()方法;
自定義PoiOverlay類,實現對每個標記的單擊監聽;
通過onPoiClick()方法,獲取每個PoiInfo中的信息。如果這個對象中包含有明細,可以打開一個新頁面來展示興趣點的詳細介紹。
在AndroidManifest.xml文件中配置PlaceCaterActivity頁面;
該頁面是Baidu提供的POI的明細介紹頁面。
PoiSearch對象調用searchInBound()、searchInCity() 、 searchNearby()方法實現興趣點查詢。
【總結:】核心步驟:
實例化BaiduMap,PoiSearch對象;
PoiSearch對象設置OnGetPoiSearchResultListener()監聽;
PoiSearch對象調用searchInCity()方法觸發監聽。
(四)、線路規劃:
1、實現路線規劃的操作步驟:
布局文件中使用MapView,用來實現對BaiduMap的加載;
初始化SDK,并檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
初始化MapView;
調用findViewById()
初始化BaiduMap對象;
baiduMap = MapView對象.getMap();
初始化RoutePlanSearch對象;
RoutePlanSearch.newInstance();
給RoutePlanSearch對象設置監聽器;
setOnGetRoutePlanResultListener(),重寫onGetWalkingRouteResult()、onGetTransitRouteResult()、onGetDrivingRouteResult()方法;
自定義三種RouteOverlay類(WalkingRouteOverlay、TransitRouteOverlay、DrivingRouteOvelray);
調用RoutePlanSearch對象的三種方法(drivingSearch()、transitSearch()、walkingSearch())實現路線規劃。
【總結:】核心步驟:
實例化BaiduMap,RoutePlanSearch對象;
RoutePlanSearch對象設置OnGetRoutePlanResultListener監聽;
RoutePlanSearch對象調用drivingSearch()、transitSearch()、walkingSearch()方法觸發監聽。
(五)、公交查詢:
1、實現公交查詢的操作步驟:
布局文件中使用fragment,用來實現對BaiduMap的加載;
class="com.baidu.mapapi.map.SupportMapFragment"
初始化SDK,并檢查Key的合法性;
SDKInitializer.initialize(getApplicationContext());
checkKEY();
當前Activity繼承于FragementActivity;
初始化BaiduMap對象;
baiduMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.fragment_poi_map)).getBaiduMap();
初始化PoiSearch對象/初始化BusLineSearch對象;
PoiSearch.newInstance();
BusLineSearch.newInstance();
給BusLineSearch對象設置監聽器;
setOnGetBusLineSearchResultListener(),重寫onGetBusLineResult()方法;
給PoiSearch對象設置監聽器;
setOnGetPoiSearchResultListener(),重寫onGetPoiResult()方法;
在這個監聽器中調用BusLineSearch對象的searchBusLine()方法;
給按鈕增加單擊監聽事件,實現PoiSearch對象的searchInBound()、searchInCity() 、 searchNearby()方法實現興趣點查詢。
【總結:】核心步驟:
實例化BaiduMap、PoiSearch對象及BusLineSearch對象;
PoiSearch對象設置OnGetPoiSearchResultListener()監聽;BusLineSearch對象設置OnGetBusLineSearchResultListener監聽;
在PoiSearch對象的監聽回調方法onGetPoiResult()中調用busLineSearch對象的searchBusLine()方法;
PoiSearch對象調用searchInCity()方法觸發整個監聽。
【備注:】
整體思路:先調用POI查詢,在POI查詢中的監聽器中執行BusLine查詢。
android 百度地圖開發 新手求助
//初始化地圖
//定義中心點
GeoPoint point = new GeoPoint((int) (4.818* 1E6),(int) (1.697 * 1E6));
mMapView = (MapView)findViewById(R.id.bmapView);
mMapView.getController().enableClick(true);
//縮放級別
mMapView.getController().setZoom(8);
//設置中心點
mMapView.getController().setCenter(point);
名稱欄目:android百度地圖開發,android百度地圖api
標題網址:http://www.xueling.net.cn/article/dsggcjc.html