android百度地圖定位api
Ⅰ 如何使用Android調用百度地圖API
本篇通過一個簡單的示例一步步介紹如何在Android應用中使用網路地圖api。
1)下載網路地圖移動版API(Android)開發包
要在Android應用中使用網路地圖API,就需要在工程中引用網路地圖API開發包,這個開發包包含兩個文件:mapapi.jar和libBMapApiEngine.so。下載地址:http://dev..com/wiki/static/imap/files/BaiMapApi_Lib_Android_1.0.zip
2)申請API Key
和使用Google map api一樣,在使用網路地圖API之前也需要獲取相應的API Key。網路地圖API Key與你的網路賬戶相關聯,因此您必須先有網路帳戶,才能獲得API Key;並且,該Key與您引用API的程序名稱有關。
網路API Key的申請要比Google的簡單多了,其實只要你有網路帳號,應該不超過30秒就能完成API Key的申請。申請地址:http://dev..com/wiki/static/imap/key/
3)創建一個Android工程
這里需要強調一點:網路地圖移動版api支持Android 1.5及以上系統,因此我們創建的工程應基於Android SDK 1.5及以上。
工程創建完成後,將mapapi.jar和libBMapApiEngine.so分別拷貝到工程的根目錄及libs/armeabi目錄下,並在工程屬性->java Build Path->Libraries中選擇「Add JARs」,選定mapapi.jar,這樣就可以在應用中使用網路地圖API了。
4)在布局文件中添加地圖控制項(res/layout/main.xml)
[xhtml] view plain
<?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..mapapi.MapView android:id="@+id/map_View"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
/>
</LinearLayout>
5)創建Activity繼承com..mapapi.MapActivity
[java] view plain
package com.liufeng.map;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com..mapapi.BMapManager;
import com..mapapi.GeoPoint;
import com..mapapi.MapActivity;
import com..mapapi.MapController;
import com..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("", 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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.liufeng.map"
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>
說明:上面的應用只是簡單的展示了網路地圖(交通地圖),並將一個指定的點(根據經緯度確定)展示在手機屏幕的中心。當然,實際項目中涉及的map應用不會這么簡單,網路地圖API為我們提供了豐富的功能介面,有待我們一起去研究學習。
Ⅱ 如何使用Android調用百度地圖API
1、調用網路地圖API首先要申請一個秘鑰,進入http://lbsyun..com/用網路賬號登陸,進入頁面申請秘鑰(具體所填信息以網站為准)
網路地圖擁有龐大的地圖相關功能,詳細內容請參照官網(http://lbsyun..com/index.php?title=androidsdk ) 中的開發指南。
Ⅲ 如何在Android應用中使用百度地圖api
在網路地圖的右上角,點擊「地圖API」。
在地圖API頁面,把滑鼠移動到「工具」菜單項,在下拉菜單中選擇「坐標拾取工具」。
比如在搜索欄輸入「網路大廈」點擊搜索,就會在地圖上出現相應的標記,點擊你要找的某一個,就能看到相應的坐標。
同理,把找到的坐標輸入到搜索欄,把後面「坐標反查」給勾上,點擊搜索,就會對應的坐標打上標記,同時會有相應地址在最右邊。
同時,把滑鼠在地圖上滑行,就可以看到,滑鼠滑到每一個地方,都會對應顯示坐標。
Ⅳ 如何使用Android調用百度地圖API
工具/原料
筆記本電腦或台式機
互聯網
谷歌瀏覽器等主流瀏覽器
網路地圖API
方法/步驟
在網路搜索引擎中搜索關鍵詞「網路地圖API」 。
訪問網路地圖API官方網站 。
本經驗案例以web開發為為例,所以選擇Javascript API。
網路地圖JavaScript API是一套由JavaScript語言編寫的應用程序介面,可幫助您在網站中構建功能豐富、交互性強的地圖應用,支持PC端和移動端基於瀏覽器的地圖應用開發,且支持HTML5特性的地圖開發。另外,2014年1月9日,極速版JavaScript API全新上線,此版本專門針對簡單功能的移動端瀏覽器開發提供。
該套API免費對外開放。自v1.5版本起,您需先申請密鑰(ak)才可使用,介面(除發送簡訊功能外)無使用次數限制。
Javascript API有3種,這里選擇Javascript API大眾版,。
申請網路地圖密鑰 。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微軟雅黑";}
</style>
<script type="text/javascript" src="htt /api.map.com/api?v=2.0&ak=您的密鑰"></script>
<title>地圖展示</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 網路地圖API功能
var map = new BMap.Map("allmap"); // 創建Map實例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地圖,設置中心點坐標和地圖級別
map.addControl(new BMap.MapTypeControl()); //添加地圖類型控制項
map.setCurrentCity("北京"); // 設置地圖顯示的城市 此項是必須設置的
map.enableScrollWheelZoom(true); //開啟滑鼠滾輪縮放
</script>
Ⅳ android 使用百度api怎麼快速定位
在下載頁面下載最新的庫文件。將liblocSDK2.4.so文件拷貝到libs/armeabi目錄下。將locSDK2.4.jar文件拷貝到工程根目錄下,並在工程屬性->Java Build Path->Libraries中選擇「Add JARs」,選定locSDK2.4.jar,確定後返回。這樣您就可以在程序中使用網路定位API了。
設置AndroidManifest.xml
為區分2.3版本service,需要將manifest file中的 intent filter聲明為com..location.service_v2.4 在application標簽中聲明service組件
<service android:name="com..location.f" android:enabled="true" android:process=":remote" android:permission="android.permission.BAIDU_LOCATION_SERVICE"> <intent-filter> <action android:name="com..location.service_v2.4"></action> </intent-filter></service>聲明使用許可權
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></permission><uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_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><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><uses-permission android:name="android.permission.READ_LOGS"></uses-permission>import相關類
import com..location.BDLocation;import com..location.BDLocationListener;import com..location.LocationClient;import com..location.LocationClientOption;import com..location.BDNotifyListener;//假如用到位置提醒功能,需要import該類功能類的使用
初始化LocationClient類
此處需要注意:LocationClient類必須在主線程中聲明。需要Context類型的參數。
public LocationClient mLocationClient = null;public BDLocationListener myListener = new MyLocationListener(); public void onCreate() { mLocationClient = new LocationClient(this); //聲明LocationClient類 mLocationClient.registerLocationListener( myListener ); //注冊監聽函數}實現BDLocationListener介面
BDLocationListener介面有2個方法需要實現:
1.接收非同步返回的定位結果,參數是BDLocation類型參數。
2.接收非同步返回的POI查詢結果,參數是BDLocation類型參數。
public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null) return ; StringBuffer sb = new StringBuffer(256); sb.append("time : "); sb.append(location.getTime()); sb.append("\nerror code : "); sb.append(location.getLocType()); sb.append("\nlatitude : "); sb.append(location.getLatitude()); sb.append("\nlontitude : "); sb.append(location.getLongitude()); sb.append("\nradius : "); sb.append(location.getRadius()); if (location.getLocType() == BDLocation.TypeGpsLocation){ sb.append("\nspeed : "); sb.append(location.getSpeed()); sb.append("\nsatellite : "); sb.append(location.getSatelliteNumber()); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){ sb.append("\naddr : "); sb.append(location.getAddrStr()); } logMsg(sb.toString()); }public void onReceivePoi(BDLocation poiLocation) { if (poiLocation == null){ return ; } StringBuffer sb = new StringBuffer(256); sb.append("Poi time : "); sb.append(poiLocation.getTime()); sb.append("\nerror code : "); sb.append(poiLocation.getLocType()); sb.append("\nlatitude : "); sb.append(poiLocation.getLatitude()); sb.append("\nlontitude : "); sb.append(poiLocation.getLongitude()); sb.append("\nradius : "); sb.append(poiLocation.getRadius()); if (poiLocation.getLocType() == BDLocation.TypeNetWorkLocation){ sb.append("\naddr : "); sb.append(poiLocation.getAddrStr()); } if(poiLocation.hasPoi()){ sb.append("\nPoi:"); sb.append(poiLocation.getPoi()); }else{ sb.append("noPoi information"); } logMsg(sb.toString()); }}設置參數
設置定位參數包括:定位模式(單次定位,定時定位),返回坐標類型,是否打開GPS等等。eg:
LocationClientOption option = new LocationClientOption();option.setOpenGps(true);option.setAddrType("detail");option.setCoorType("gcj02");option.setScanSpan(5000);option.disableCache(true);//禁止啟用緩存定位option.setPoiNumber(5); //最多返回POI個數 option.setPoiDistance(1000); //poi查詢距離 option.setPoiExtraInfo(true); //是否需要POI的電話和地址等詳細信息 mLocClient.setLocOption(option);發起定位請求
發起定位請求。請求過程是非同步的,定位結果在上面的監聽函數onReceiveLocation中獲取。
if (mLocClient != null && mLocClient.isStarted()) mLocClient.requestLocation();else Log.d("LocSDK_2.0_Demo1", "locClient is null or not started");發起POI查詢請求
發起POI查詢請求。請求過程是非同步的,定位結果在上面的監聽函數onReceivePoi中獲取。
if (mLocClient != null && mLocClient.isStarted()) mLocClient.requestPoi();位置提醒使用
位置提醒最多提醒3次,3次過後將不再提醒。 假如需要再次提醒,或者要修改提醒點坐標,都可通過函數SetNotifyLocation()來實現。
//位置提醒相關代碼mNotifyer = new NotifyLister();mNotifyer.SetNotifyLocation(42.03249652949337,113.3129895882556,3000,"gps");//4個參數代表要位置提醒的點的坐標,具體含義依次為:緯度,經度,距離范圍,坐標系類型(gcj02,gps,bd09,bd09ll)mLocationClient.registerNotify(mNotifyer);//注冊位置提醒監聽事件後,可以通過SetNotifyLocation 來修改位置提醒設置,修改後立刻生效。
//BDNotifyListner實現public class NotifyLister extends BDNotifyListener{ public void onNotify(BDLocation mlocation, float distance){ mVibrator01.vibrate(1000);//振動提醒已到設定位置附近 }}
//取消位置提醒mLocationClient.removeNotifyEvent(mNotifyer);
Ⅵ 如何使用Android調用百度地圖API
做開發的過程中,有時要使用到定位等功能,就可以使用網路地圖,而在使用前我們首先要去申請一個網路地圖的key才能使用網路地圖的功能。
1、首先,要擁有一個網路帳號。如果已有,可以直接登錄,沒有就要去注冊一個網路ID。
2、有了網路帳號就可以去網站申請key了,網路「網路地圖API「,點開第一條信息就可以進網路地圖API的官網。
3、進官網會顯示一個提示,選擇Android程序員可以進去了解下網路地圖,你如果和了解就可以直接關了。然後找到下面的申請密鑰的按鈕點進去。
4、在這里因為是展示Android網路API的應用,所以點擊創建應用,在窗口中選擇for mobile,應用名稱可以隨便設置。
5、而最重要的就是下面安全碼的填寫了,數字簽名可以通過打開Eclipse的首選項查看,而不用命令查看那麼麻煩。如圖箭頭所指就是sha1值。
6、然後復制在安全碼裡面,+;+包名,這里的包名要與你程序中的包名所一致。到這里基本就大功告成了,確定之後開始你的開發之路吧。
Ⅶ 如何在Android應用中使用百度地圖api
:
首先到API,看你需要android開發的類型,
可以選擇這4個:Android地圖SDK Android定位SDK Android導航SDK Android全景SDK;
你看需要的是哪一個,點進去,然後會看到開發指南,第一步申請對應的key,
然後API對應的demo,把lib都引進去,照著demo做,demo沒有的就查看對應組件的類參考,
做一次就很容易了
Ⅷ 如何使用Android調用百度地圖API
下載網路地圖移動版API(Android)開發包
要在Android應用中使用網路地圖API,就需要在工程中引用網路地圖API開發包,這個開發包包含兩個文件:mapapi.jar和libBMapApiEngine.so。申請API Key
和使用Google map api一樣,在使用網路地圖API之前也需要獲取相應的API Key。網路地圖API Key與你的網路賬戶相關聯,因此您必須先有網路帳戶,才能獲得API Key;並且,該Key與您引用API的程序名稱有關。
網路API Key的申請要比Google的簡單多了,其實只要你有網路帳號,應該不超過30秒就能完成API Key的申請。在布局文件中添加地圖控制項(res/layout/main.xml)
創建Activity繼承com..mapapi.MapActivity
在AndroidManifest.xml中配置
運行結果
總結:上面的應用只是簡單的展示了網路地圖(交通地圖),並將一個指定的點(根據經緯度確定)展示在手機屏幕的中心。當然,實際項目中涉及的map應用不會這么簡單,網路地圖API為我們提供了豐富的功能介面,有待我們一起去研究學習。