亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

Android百度地圖定位、顯示用戶當(dāng)前位置

2019-10-21 21:30:31
字體:
供稿:網(wǎng)友

本文實(shí)例為大家分享了Android百度地圖定位、顯示用戶當(dāng)前位置的工具類,供大家參考,具體內(nèi)容如下

1、構(gòu)建定位Option的工具類

import com.baidu.location.LocationClientOption;/** * 建造 LocationClientOption 項(xiàng) * * @author peter 2018-12-21 10:58 */public class LocationClientOptionBuilder { private LocationClientOption option; public static LocationClientOptionBuilder builder() {  LocationClientOptionBuilder builder = new LocationClientOptionBuilder();  builder.option = builder.initOption();  return builder; } /**  * 設(shè)置坐標(biāo)系  *  * @return  * @see CoorType  */ public LocationClientOptionBuilder setCoorType() {  return setCoorType(CoorType.bd09ll); } public LocationClientOptionBuilder setCoorType(CoorType coorType) {  this.option.setCoorType(coorType.name());  return this; } /**  * 連續(xù)定位  * 可選,設(shè)置發(fā)起定位請求的間隔,int類型,單位ms  * 如果設(shè)置為0,則代表單次定位,即僅定位一次,默認(rèn)為0  * 如果設(shè)置非0,需設(shè)置1000ms以上才有效  *  * @param time  * @return  */ public LocationClientOptionBuilder setScanSpan(int time) {  this.option.setScanSpan(time);  return this; } public LocationClientOption bulid() {  return this.option; } private LocationClientOption initOption() {  LocationClientOption option = new LocationClientOption();  //可選,設(shè)置定位模式,默認(rèn)高精度  //LocationMode.Hight_Accuracy:高精度;  //LocationMode. Battery_Saving:低功耗;  //LocationMode. Device_Sensors:僅使用設(shè)備;  option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);  //可選,設(shè)置返回經(jīng)緯度坐標(biāo)類型,默認(rèn)GCJ02  //GCJ02:國測局坐標(biāo);  //BD09ll:百度經(jīng)緯度坐標(biāo);  //BD09:百度墨卡托坐標(biāo);  //海外地區(qū)定位,無需設(shè)置坐標(biāo)類型,統(tǒng)一返回WGS84類型坐標(biāo)//  option.setCoorType("bd09ll");  //可選,設(shè)置發(fā)起定位請求的間隔,int類型,單位ms  //如果設(shè)置為0,則代表單次定位,即僅定位一次,默認(rèn)為0  //如果設(shè)置非0,需設(shè)置1000ms以上才有效//  option.setScanSpan(1000);  //可選,設(shè)置是否使用gps,默認(rèn)false  //使用高精度和僅用設(shè)備兩種定位模式的,參數(shù)必須設(shè)置為true  option.setOpenGps(true);  //可選,設(shè)置是否當(dāng)GPS有效時按照1S/1次頻率輸出GPS結(jié)果,默認(rèn)false//  option.setLocationNotify(true);  //可選,定位SDK內(nèi)部是一個service,并放到了獨(dú)立進(jìn)程。  //設(shè)置是否在stop的時候殺死這個進(jìn)程,默認(rèn)(建議)不殺死,即setIgnoreKillProcess(true)//  option.setIgnoreKillProcess(true);  //可選,設(shè)置是否收集Crash信息,默認(rèn)收集,即參數(shù)為false//  option.SetIgnoreCacheException(false);  //可選,V7.2版本新增能力  //如果設(shè)置了該接口,首次啟動定位時,會先判斷當(dāng)前Wi-Fi是否超出有效期,若超出有效期,會先重新掃描Wi-Fi,然后定位//  option.setWifiCacheTimeOut(5 * 60 * 1000);  //可選,設(shè)置是否需要過濾GPS仿真結(jié)果,默認(rèn)需要,即參數(shù)為false//  option.setEnableSimulateGps(false);  return option; } /**  * 坐標(biāo)系  */ public enum CoorType {  gcj02,  bd09,  bd09ll }}

2、構(gòu)建定位的工具類

import android.content.Context;import android.support.annotation.NonNull;import android.util.Log;import com.baidu.location.BDAbstractLocationListener;import com.baidu.location.BDLocation;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;/** * 百度地圖定位工具類 * * @author peter 2018-12-21 10:12 */public class BMapLocationHelper { private static final int LOCATION_SUCCESS = 1; static final int LOCATION_FAIL = -1; private LocationClient mLocationClient; private MyLocationListener myListener = new MyLocationListener(); private LocationCallBack callBack; private BMapLocationHelper(LocationCallBack callBack) {  this.callBack = callBack; } public static BMapLocationHelper create(@NonNull Context context, @NonNull LocationClientOption option, @NonNull LocationCallBack callBack) {  BMapLocationHelper bMapLocationHelper = new BMapLocationHelper(callBack);  LocationClient client = new LocationClient(context);  client.setLocOption(option);  //聲明LocationClient類  client.registerLocationListener(bMapLocationHelper.myListener);  bMapLocationHelper.mLocationClient = client;  return bMapLocationHelper; } /**  * 開始定位  */ public void locStart() {  mLocationClient.start(); } /**  * 停止定位  */ public void locStop() {  mLocationClient.stop(); } public void locReStart() {  mLocationClient.restart(); } public LocationClient getmLocationClient() {  return mLocationClient; } /**  * 地圖定位結(jié)果監(jiān)聽類  */ public class MyLocationListener extends BDAbstractLocationListener {  private static final String TAG = "MyLocationListener";  @Override  public void onReceiveLocation(BDLocation location) {   if (location == null) return;   int locType = location.getLocType();   int status = LOCATION_SUCCESS;   if (locType != 61 && locType != 161 && locType != 66) status = LOCATION_FAIL;   String errMsg = getLocationResultMsg(locType);   callBack.onReceiveLocation(status, location, errMsg);  }  @Override  public void onLocDiagnosticMessage(int i, int i1, String s) {   Log.i(TAG, "onLocDiagnosticMessage: " + i + "diaType:" + i1);   callBack.onLocDiagnosticMessage(i, i1, getLocDiagnosticMessage(i, i1));   super.onLocDiagnosticMessage(i, i1, s);  } } /**  * 回調(diào)類  */ public abstract static class LocationCallBack {  /**   * 定位的結(jié)果   *   * @param statusCode 狀態(tài)碼,1:定位成功,-1定位失敗   * @param bdLocation 定位成功時返回的定位結(jié)果對象   * @param errMsg  定位失敗時的錯誤信息,成功時則為null   */  public abstract void onReceiveLocation(int statusCode, BDLocation bdLocation, String errMsg);  /**   * 錯誤的狀態(tài)碼   * <a>http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code</a>   * <p>   * 回調(diào)定位診斷信息,開發(fā)者可以根據(jù)相關(guān)信息解決定位遇到的一些問題   *   * @param locType   當(dāng)前定位類型   * @param diagnosticType 診斷類型(1~9)   * @param diagnosticMessage 具體的診斷信息釋義   */  public void onLocDiagnosticMessage(int locType, int diagnosticType, String diagnosticMessage) {  } } /**  * 錯誤的狀態(tài)碼  * <a>http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code</a>  *  * @param locType 當(dāng)前定位類型  * @return String 定位成功或失敗的信息  */ private String getLocationResultMsg(int locType) {  switch (locType) {   case 61:    return "GPS定位結(jié)果,GPS定位成功";   case 62:    return "無法獲取有效定位依據(jù),定位失敗,請檢查運(yùn)營商網(wǎng)絡(luò)或者WiFi網(wǎng)絡(luò)是否正常開啟,嘗試重新請求定位";   case 63:    return "網(wǎng)絡(luò)異常,沒有成功向服務(wù)器發(fā)起請求,請確認(rèn)當(dāng)前測試手機(jī)網(wǎng)絡(luò)是否通暢,嘗試重新請求定位";   case 66:    return "離線定位結(jié)果。通過requestOfflineLocaiton調(diào)用時對應(yīng)的返回結(jié)果";   case 67:    return "離線定位失敗";   case 161:    return "網(wǎng)絡(luò)定位結(jié)果,網(wǎng)絡(luò)定位成功";   case 162:    return "請求串密文解析失敗,一般是由于客戶端SO文件加載失敗造成,請嚴(yán)格參照開發(fā)指南或demo開發(fā),放入對應(yīng)SO文件";   case 167:    return "服務(wù)端定位失敗,請您檢查是否禁用獲取位置信息權(quán)限,嘗試重新請求定位";   case 505:    return "AK不存在或者非法,請按照說明文檔重新申請AK";   default:    return "";  } } /**  * @param locType  當(dāng)前定位類型  * @param diagnosticType 診斷類型(1~9)  * @return String  */ private String getLocDiagnosticMessage(int locType, int diagnosticType) {  switch (locType) {   case 62:    switch (diagnosticType) {     case 4:      return "定位失敗,無法獲取任何有效定位依據(jù)";     case 5:      return "定位失敗,無法獲取有效定位依據(jù),請檢查運(yùn)營商網(wǎng)絡(luò)或者Wi-Fi網(wǎng)絡(luò)是否正常開啟,嘗試重新請求定位";     case 6:      return "定位失敗,無法獲取有效定位依據(jù),請嘗試插入一張sim卡或打開Wi-Fi重試";     case 7:      return "定位失敗,飛行模式下無法獲取有效定位依據(jù),請關(guān)閉飛行模式重試";     case 9:      return "定位失敗,無法獲取任何有效定位依據(jù)";    }   case 67:    if (diagnosticType == 3) return "定位失敗,請您檢查您的網(wǎng)絡(luò)狀態(tài)";   case 161:    switch (diagnosticType) {     case 1:      return "定位失敗,建議您打開GPS";     case 2:      return "定位失敗,建議您打開Wi-Fi";    }   case 167:    if (diagnosticType == 8) return "定位失敗,請確認(rèn)您定位的開關(guān)打開狀態(tài),是否賦予APP定位權(quán)限";   default:    return "未知錯誤";  } }}

3、顯示用戶當(dāng)前位置到地圖的工具類

import android.content.Context;import android.support.annotation.NonNull;import android.util.Log;import com.baidu.location.BDLocation;import com.baidu.location.LocationClientOption;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.MapStatus;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MyLocationData;import com.baidu.mapapi.model.LatLng;import com.yikesong.sender.util.ToastUtils;/** * 顯示用戶當(dāng)前位置到地圖上 * * @author peter 2018-12-21 16:27 */public class UserLocation extends BMapLocationHelper.LocationCallBack { private Context context; private boolean isFirstLoc = true; private BaiduMap map; private int mCurrentDirection = 0; private BMapLocationHelper helper; private static final String TAG = "UserLocation"; public UserLocation(@NonNull Context context, @NonNull BaiduMap map) {  this.context = context;  this.map = map;  init(); } private void init() {  map.setMapType(BaiduMap.MAP_TYPE_NORMAL);  //開啟定位圖層  map.setMyLocationEnabled(true); } /**  * 在地圖上顯示用戶的當(dāng)前位置  */ public void showUserLocationOnMap() {  if (helper == null) {   LocationClientOption option = LocationClientOptionBuilder     .builder()     .setCoorType()     .bulid();   helper = BMapLocationHelper.create(this.context, option, this);  }  helper.locStart(); } @Override public void onReceiveLocation(int statusCode, BDLocation bdLocation, String errMsg) {  if (statusCode == BMapLocationHelper.LOCATION_FAIL) {   ToastUtils.toastInfo(errMsg, context);   Log.i(TAG, "onReceiveLocation: " + errMsg);   return;  }  MyLocationData locData = new MyLocationData.Builder()    .accuracy(bdLocation.getRadius())    // 此處設(shè)置開發(fā)者獲取到的方向信息,順時針0-360    .direction(mCurrentDirection).latitude(bdLocation.getLatitude())    .longitude(bdLocation.getLongitude()).build();  map.setMyLocationData(locData);  if (isFirstLoc) {   isFirstLoc = false;   LatLng centerPoint = new LatLng(bdLocation.getLatitude(),     bdLocation.getLongitude());   MapStatus mapStatus = new MapStatus.Builder()     .target(centerPoint) //設(shè)置中心點(diǎn)     .zoom(18f)//設(shè)置縮放級別     .build();   map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(mapStatus));  }  if (helper != null) helper.locStop(); } @Override public void onLocDiagnosticMessage(int locType, int diagnosticType, String diagnosticMessage) {  super.onLocDiagnosticMessage(locType, diagnosticType, diagnosticMessage); } public BMapLocationHelper getHelper() {  return helper; } public BaiduMap getMap() {  return map; } public int getmCurrentDirection() {  return mCurrentDirection; }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲色图久久久| 四虎精品在线| 国产伦精品一区二区三区视频小说| 国产在线日韩| 久久婷婷国产麻豆91| 成人在线观看免费高清| 中文字幕乱码一区| av电影在线观看不卡| 欧美人在线观看| 精品国产sm最大网站| 日韩黄色视屏| 国产一区二区视频在线免费观看| 成人看的视频| 中文字幕第31页| 久久天天躁日日躁| 日韩在线一区视频| 亚洲欧美偷拍卡通变态| 日韩电视剧在线观看免费网站| 国产美女高潮在线观看| 欧美日韩免费观看一区=区三区| 欧美日韩三级在线观看| 福利电影一区二区三区| 久久精品magnetxturnbtih| 欧美自拍大量在线观看| 老妇喷水一区二区三区| 经典三级一区二区三区视频| 欧美亚洲综合色| aaa国产精品视频| 精品久久久久久中文字幕人妻最新| 国产美女免费视频| 色婷婷av一区二区三区丝袜美腿| 欧洲专线二区三区| 国产乱子夫妻xx黑人xyx真爽| 在线播放av更多| 国产亚洲精品一区二555| 空姐吹箫视频大全| 亚洲人免费短视频| 国产在线麻豆精品| 中文字幕在线不卡一区二区三区| 亚洲中无吗在线| 国产人妖在线播放| 国产精品久久午夜| 国产精品99蜜臀久久不卡二区| 国产在线观看一区二区三区| 中文字幕在线视频第一页| www.狠狠爱| 精品一区二区三区免费视频| 国产精品久久久久一区二区| 最近中文字幕在线免费观看| 91影院未满十八岁禁止入内| 国产视频一二三四区| 一区二区三区视频在线看| 一线天粉嫩在线播放| 国产精品嫩草影院com| 欧美日韩精品一本二本三本| 91中文在线视频| 色呦呦一区二区| 成人av中文字幕| 国产男女猛烈无遮挡91| 可以在线观看的黄色网址| 91n.com在线观看| 免费黄色av网站| 色婷婷综合视频| 国产日韩欧美中文在线播放| 乱小说综合网站| 天天做天天爱天天综合网| 无码h黄肉3d动漫在线观看| 欧美mv日韩mv国产网站app| 精品在线免费视频| 亚洲av无码一区二区乱子伦| 日韩精品在线免费| xxxxxxxxx欧美| 黑人玩弄人妻一区二区三区| 国产乱码一区二区三区四区| 2023国产精华国产精品| 国产精品入口麻豆| jizz18欧美| 成人国产精品免费网站| 日本大胆在线观看| 久久久噜噜噜www成人网| 亚洲国产精久久久久久久| 男人天堂手机在线视频| 欧美亚洲伦理www| 成人av网站在线播放| 91麻豆精品激情在线观看最新| 欧美日韩美女在线观看| 欧美视频精品| 九九99玖玖| 另类天堂视频在线观看| 五月综合色婷婷| 91久久精品日日躁夜夜躁国产| 成人中文字幕在线| 婷婷亚洲成人| 奇米4444一区二区三区| 国产欧美88| 久久久久亚洲av无码网站| av不卡一区二区| 欧美日韩尤物久久| 日本黄色成人| 欧美亚洲国产免费| 国产精品欧美久久久久天天影视| 日韩视频第一页| 韩国成人在线| 这里只有精品视频在线| 国产又粗又黄又爽视频| 亚洲第一区中文字幕| 欧美久久精品一级黑人c片| 99视频免费在线观看| 亚洲午夜精品在线| 2022国产精品视频| 国产麻豆精品久久一二三| 在线观看成人小视频| 日韩av在线播| 一区二区三区无码高清视频| eeuss影院www免费影院| 色狠狠久久av五月综合| 野花视频免费在线观看| va天堂va亚洲va影视| 亚洲最大免费| 精品国产乱码91久久久久久网站| 黄网页免费在线观看| 亚洲图片欧美一区| 亚洲国产精品无码观看久久| 很黄很色的网站| 欧美极品美女电影一区| 综合久草视频| 一区在线播放| 日韩电影在线观看完整免费观看| 性欧美18xxxhd| 欧美激情视频在线播放| 成人高清在线观看免费| 亚洲一区二区视频在线| 亚洲一区二区三区视频在线| 国产日本韩国在线播放| 369你懂的电影天堂| 色悠悠久久久久| 肉色欧美久久久久久久免费看| 99久久久久国产精品| 亚洲精品一区二区三区福利| 成人影院网站| 国产精品色网| 性欧美欧美巨大69| 中文字幕在线中文字幕在线中三区| 成年网站免费| 国产日韩欧美亚洲一区| 国模大尺度视频| 欧美色图在线观看| 国产三级av在线| 成人v精品蜜桃久久一区| 亚洲精品久久久蜜桃动漫| 国产精品丝袜一区| 91久久久一线二线三线品牌| 国偷自产av一区二区三区麻豆| 欧美一级二级在线观看| 日韩有码免费视频| 91精品黄色片免费大全| 精品久久毛片| 久久久久久久网| 91精品国产沙发| 97热在线精品视频在线观看| seseavlu视频在线| 男人av在线播放| 在线免费观看h视频| 丁香视频五月| 欧美一级二级视频| 精品黑人一区二区三区观看时间| 亚洲另类一区二区| 欧美精品久久久久久久久46p| 人妻在线日韩免费视频| 亚洲摸下面视频| 怡红院成人在线| 亚洲精品国产成人av在线| 三日本三级少妇三级99| 九色成人国产蝌蚪91| 影音先锋5566资源网| 日韩欧美中文字幕在线视频| 天堂在线观看视频| 青青草国产精品亚洲专区无| 无码国产精品一区二区色情男同| 日韩三级av在线| 久久亚洲二区| 国产一区二区按摩在线观看| 日韩av新片网| 亚洲欧美色图小说| 亚洲社区在线| 国产一区不卡在线观看| www视频网站| 在线观看不卡一区| 国产又粗又猛视频| 色欲AV无码精品一区二区久久| 日韩va亚洲va欧美va久久| 欧美一区三区二区在线观看| www.我爱av| jizzjizz.con| 亚洲AV无码成人片在线观看| 天堂а在线中文在线无限看推荐| 麻豆网站在线看| 日韩av网站在线免费观看| x99av成人免费| 日韩欧美中文免费| 在线麻豆国产传媒1国产免费| 免费精品视频| 极品尤物一区| 亚洲男人天堂av网| 国产精品一区二区免费在线观看| www.男人的天堂.com| 中文字幕久久久av一区| 嫩草影院在线观看网站成人| 美女精品视频在线| 亚洲同性同志一二三专区| 欧美视频中文在线看| 久久精品国产亚洲blacked| 一级片免费网址| 久久精品视频中文字幕| 香蕉视频xxx| 日本道精品一区二区三区| 教室别恋欧美无删减版| 日韩中文在线中文网三级| 天天干天天插天天射| 亚洲美女爱爱视频| 国产美女三级无套内谢| 成人妇女免费播放久久久| 成人深夜福利| 欧美主播一区二区三区美女| 精品在线播放午夜| 深夜激情久久| 妺妺窝人体色www在线观看| 亚洲精品麻豆| 国产三级视频在线看| 日本一卡二卡四卡精品| 加勒比免费视频| 男人添女荫道口喷水视频| 国产伦精品一区二区三区四区视频_| 一级视频在线观看| 91涩漫在线观看| 色综合久久66| 亚洲国产古装精品网站| 91视频观看视频| 国产精品四虎| 日本一本在线视频| 色播五月激情五月| 欧美高清视频www夜色资源网| 国产成人77亚洲精品www| 九九热青青草| 一本大道av伊人久久综合| 欧美色成人综合| 成人免费网视频| 99视频在线精品| 日本美女黄色一级片| 欧洲日韩一区二区三区| 日韩高清不卡| 日韩女优人人人人射在线视频| 老熟妇一区二区三区| 成人性生交大片免费看视频直播| 激情网站五月天| 国产精品久久久久久久久久小说| 欧美a一片xxxx片| 91美女片黄在线观| 成人黄色激情网| 欧美国产在线一区| 男人天堂网页| 久久精品无码专区| 日韩精品丝袜在线| 国产精品久久一级| 久久亚洲在线| 久草免费在线视频| 欧美视频一区二区三区| 国产三级电影在线播放| 欧美刺激性大交免费视频| 欧美韩日高清| 麻豆免费看一区二区三区| 日本高清不卡在线| 日韩欧美亚洲视频| 男人天堂手机在线视频| 国产精品一区二区人妻喷水| 国产wwwwxxxx| 日韩美女av在线免费观看| 色狠狠av一区二区三区| 岛国av一区二区在线在线观看| 国产成人免费视频一区| 韩国精品一区二区三区六区色诱| 国产成人自拍视频在线观看| 天天干夜夜操| 五月天激情小说综合| 性欧美hd调教| 大香煮伊手机一区| 亚洲精品国产欧美| av每日在线更新| 一女被多男玩喷潮视频| 一区二区三区在线视频观看| 中文字幕第二区| 999久久久国产精品| 欧美丰满少妇xxxxx| 国产精品一区二区三区乱码| 日本午夜在线| 公交车上扒开嫩j挺进去| 久久亚洲国产成人| 麻豆国产入口在线观看免费| 国产精品天天av精麻传媒| 卡通动漫国产精品| 亚洲一区黄色| 视频一区二区三| 国内自拍视频一区| 国产美女做爰免费视频软件| 亚洲色图色老头| 欧洲av无码放荡人妇网站| 国产精品亚洲午夜一区二区三区| 91精品国产综合久久久久久久久| 色偷偷久久一区二区三区| 美女18一级毛片一品久道久久综合| 国产探花视频在线播放| 亚洲综合福利| 亚洲视频中文字幕| 成人综合在线网站| 欧洲美女和动交zoz0z| 成人激情视频在线| 国产制服91一区二区三区制服| 欧美综合国产精品久久丁香| ady日本映画久久精品一区二区| 日韩国产欧美精品| 日日碰狠狠躁久久躁婷婷| 91在线视频免费播放| 91精品国产品国语在线不卡| 亚洲欧美中文另类| 99久久伊人| 欧美成人伊人久久综合网| 蜜桃精品视频| 成人在线免费视频|