怎么做的?詳細一點,小白求解答。
uj5u.com熱心網友回復:
自己對接 高德地圖 定位SDK即可uj5u.com熱心網友回復:
集成百度地圖sdk也行。。uj5u.com熱心網友回復:
可以集成高德地圖如下:
AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
//宣告AMapLocationClient類物件
public AMapLocationClient mLocationClient = null;
/**
* 高德定位
*/
private void initLocation() {
//初始化定位
mLocationClient = new AMapLocationClient(getApplicationContext());
//設定定位回呼監聽
mLocationClient.setLocationListener(mLocationListener);
//設定定位模式為AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
/**
* 設定定位場景,目前支持三種場景(簽到、出行、運動,默認無場景)
*/
// mLocationOption.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose..SignIn);
//獲取一次定位結果:
//該方法默認為false。
mLocationOption.setOnceLocation(true);
//獲取最近3s內精度最高的一次定位結果:
//設定setOnceLocationLatest(boolean b)介面為true,啟動定位時SDK會回傳最近3s內精度最高的一次定位結果。如果設定其為true,setOnceLocation(boolean b)介面也會被設定為true,反之不會,默認為false。
mLocationOption.setOnceLocationLatest(true);
mLocationOption.setNeedAddress(true);
if (null != mLocationClient) {
//給定位客戶端物件設定定位引數
mLocationClient.setLocationOption(mLocationOption);
//啟動定位
mLocationClient.startLocation();
}
}
//宣告定位回呼監聽器
public AMapLocationListener mLocationListener = new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null) {
if (amapLocation.getErrorCode() == 0) {
//可在其中決議amapLocation獲取相應內容。
amapLocation.getLocationType();//獲取當前定位結果來源,如網路定位結果,詳見定位型別表
amapLocation.getLatitude();//獲取緯度
amapLocation.getLongitude();//獲取經度
amapLocation.getAccuracy();//獲取精度資訊
amapLocation.getAddress();//地址,如果option中設定isNeedAddress為false,則沒有此結果,網路定位結果中會有地址資訊,GPS定位不回傳地址資訊。
amapLocation.getCountry();//國家資訊
amapLocation.getProvince();//省資訊
amapLocation.getCity();//城市資訊
amapLocation.getDistrict();//城區資訊
amapLocation.getStreet();//街道資訊
amapLocation.getStreetNum();//街道門牌號資訊
amapLocation.getCityCode();//城市編碼
amapLocation.getAdCode();//地區編碼
amapLocation.getAoiName();//獲取當前定位點的AOI資訊
amapLocation.getBuildingId();//獲取當前室內定位的建筑物Id
amapLocation.getFloor();//獲取當前室內定位的樓層
amapLocation.getGpsAccuracyStatus();//獲取GPS的當前狀態
mLocationClient.stopLocation();//停止定位后,本地定位服務并不會被銷毀
mLocationClient.onDestroy();//銷毀定位客戶端,同時銷毀本地定位服務。
mCityCode = amapLocation.getCityCode();
mAdCode = amapLocation.getAdCode();
mCityAddress = amapLocation.getDistrict();
EventBus.getDefault().post(new EventBusModel("city_location"));
Logger.v("定位結果來源: " + amapLocation.getConScenario()+ "---\n精度資訊: " + amapLocation.getAccuracy() + "----\n城市資訊: " + amapLocation.getCity() + "----\n城區資訊: " + amapLocation.getDistrict() + "------\n街道資訊: " + amapLocation.getStreet() + "----\n門牌號資訊:" + amapLocation.getStreetNum() + "----\n城市編碼: " + amapLocation.getCityCode() + "-----\n地區編碼:" + amapLocation.getAdCode() + "-----\n當前室內定位的樓層:" + amapLocation.getFloor() + "------\n室內定位的建筑物Id:" + amapLocation.getBuildingId());
} else {
//定位失敗時,可通過ErrCode(錯誤碼)資訊來確定失敗的原因,errInfo是錯誤資訊,詳見錯誤碼表。
Log.e("AmapError", "location Error, ErrCode:"
+ amapLocation.getErrorCode() + ", errInfo:"
+ amapLocation.getErrorInfo());
}
}
}
};
即可定位,獲取你想要的一切資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/140291.html
標籤:Android
上一篇:影視雙端app
下一篇:求助,求助!!
