android百度地圖api定位
㈠ 怎麼在android百度地圖通過經緯度來定位並且顯示出地圖位置
可以參考如下內容:
使用Android自帶的LocationManager和Location獲取位置的時候,經常會有獲取的location為null的情況,並且操作起來也不是很方便,在這個Demo里我使用了網路地圖API中的定位SDK,可以一次性獲取當前位置經緯度以及詳細地址信息,還可以獲取周邊POI信息,同時可以設定位置通知點,當到達某一位置時,發出通知信息等方式來告知用戶。jar包下載以及官方文檔請參照:網路定位SDK,前提是需要注冊網路開發者賬號。
下面來看看定位的基本原理,目前,定位SDK可以通過GPS、基站、Wifi信號進行定位。基本定位流程如下圖所示,當應用程序向定位SDK發起定位請求時,定位SDK會根據當前的GPS、基站、Wifi信息生成相對應的定位依據。然後定位SDK會根據定位依據來進行定位。如果需要,定位SDK會向定位伺服器發送網路請求。定位伺服器會根據請求的定位依據推算出對應的坐標位置,然後根據用戶的定製信息,生成定位結果返回給定位SDK。
㈡ 關於安卓百度地圖定位api的使用
題主解決了嗎?
我在
java">mLocationClient=((LocationApplication)getApplication()).mLocationClient;
這里getApplication();一直報錯,求問怎麼回事?
㈢ 如何使用Android調用百度地圖API
:首先到API,看你需要android開發的類型,可以選擇這4個:Android地圖SDKAndroid定位SDKAndroid導航SDKAndroid全景SDK;你看需要的是哪一個,點進去,然後會看到開發指南,第一步申請對應的key,然後API對應的demo,把lib都引進去,照著demo做,demo沒有的就查看對應組件的類參考,做一次就很容易了
㈣ 如何使用Android調用百度地圖API
1、調用網路地圖API首先要申請一個秘鑰,進入http://lbsyun..com/用網路賬號登陸,進入頁面申請秘鑰(具體所填信息以網站為准)
網路地圖擁有龐大的地圖相關功能,詳細內容請參照官網(http://lbsyun..com/index.php?title=androidsdk ) 中的開發指南。
㈤ 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
1.設置定位中心:直接搜索你要找的位置即可。
2.設置地圖:設置地圖樣式,如大小,顯示,功能等。
3.添加標註:添加你要標注的地方,自定義坐標位置
4.獲取代碼:點擊獲取代碼即可,在你要插入網路地圖的地方出入網路地圖代碼
只要插入<!--引用網路地圖API-->部分的代碼就行。
㈦ android 基於百度地圖api開發的APP定位以及獲取詳細地址為什麼獲取不到村鎮位置,只能到縣
只有獲取省市區,及詳細地址,注意,這個詳細地址包含了省市區及村鎮,具體查看網路地圖api,有示例demo,可以直接拿去用的代碼。