最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android使用百度地圖SDK獲取定位信息示例

 更新時間:2017年02月09日 14:03:42   作者:石煒賢的工作室  
這篇文章主要介紹了android使用百度地圖SDK獲取定位信息示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文使用Android Studio開發(fā)。

獲取定位信息相對簡單,我們只需要如下幾步:

第一步,注冊百度賬號,在百度地圖開放平臺新建應(yīng)用、生成API_KEY。這些就不細說了,請前往這里:http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/key

第二步,下載sdk,地址:http://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download

第三步,建立Android Studio工程(略過不說),配置環(huán)境:

將解壓后的文件放入libs文件夾下,并在src/main下建立一個叫做jniLibs的文件夾,并把解壓后內(nèi)的文件夾靠進去,如下圖:

這里寫圖片描述 這里寫圖片描述

第四步,將BaiduLBS_Android.jar加入環(huán)境變量(右鍵,Add As Library),并在app的build.gradle中的android中添加:

 sourceSets {
    main {
      jniLibs.srcDirs = ['libs']
    }
  }

如圖:

這里寫圖片描述

第五步,在AndroidManifest.xml文件中聲明權(quán)限:

<uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <!--網(wǎng)絡(luò)定位-->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <!--GPS定位-->
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

并在application標簽中添加如下內(nèi)容:

 <meta-data
      android:name="com.baidu.lbsapi.API_KEY"
      android:value="你申請的API key" />
    <service
      android:name="com.baidu.location.f"
      android:enabled="true"
      android:process=":remote" />

第六步,測試代碼,獲取定位信息:

public class MainActivity extends AppCompatActivity {

  public LocationClient mLocationClient = null;
  public BDLocationListener myListener = new MyLocationListener();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    startLocate();
  }

  /**
   * 定位
   */
  private void startLocate() {
    mLocationClient = new LocationClient(getApplicationContext());   //聲明LocationClient類
    mLocationClient.registerLocationListener(myListener);  //注冊監(jiān)聽函數(shù)
    LocationClientOption option = new LocationClientOption();
    option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving
    );//可選,默認高精度,設(shè)置定位模式,高精度,低功耗,僅設(shè)備
    option.setCoorType("bd09ll");//可選,默認gcj02,設(shè)置返回的定位結(jié)果坐標系
    int span = 1000;
    option.setScanSpan(span);//可選,默認0,即僅定位一次,設(shè)置發(fā)起定位請求的間隔需要大于等于1000ms才是有效的
    option.setIsNeedAddress(true);//可選,設(shè)置是否需要地址信息,默認不需要
    option.setOpenGps(true);//可選,默認false,設(shè)置是否使用gps
    option.setLocationNotify(true);//可選,默認false,設(shè)置是否當GPS有效時按照1S/1次頻率輸出GPS結(jié)果
    option.setIsNeedLocationDescribe(true);//可選,默認false,設(shè)置是否需要位置語義化結(jié)果,可以在BDLocation.getLocationDescribe里得到,結(jié)果類似于“在北京天安門附近”
    option.setIsNeedLocationPoiList(true);//可選,默認false,設(shè)置是否需要POI結(jié)果,可以在BDLocation.getPoiList里得到
    option.setIgnoreKillProcess(false);//可選,默認true,定位SDK內(nèi)部是一個SERVICE,并放到了獨立進程,設(shè)置是否在stop的時候殺死這個進程,默認不殺死
    option.SetIgnoreCacheException(false);//可選,默認false,設(shè)置是否收集CRASH信息,默認收集
    option.setEnableSimulateGps(false);//可選,默認false,設(shè)置是否需要過濾GPS仿真結(jié)果,默認需要
    mLocationClient.setLocOption(option);
    //開啟定位
    mLocationClient.start();
  }

  private class MyLocationListener implements BDLocationListener {

    @Override
    public void onReceiveLocation(BDLocation location) {
      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) {// GPS定位結(jié)果
        sb.append("\nspeed : ");
        sb.append(location.getSpeed());// 單位:公里每小時
        sb.append("\nsatellite : ");
        sb.append(location.getSatelliteNumber());
        sb.append("\nheight : ");
        sb.append(location.getAltitude());// 單位:米
        sb.append("\ndirection : ");
        sb.append(location.getDirection());// 單位度
        sb.append("\naddr : ");
        sb.append(location.getAddrStr());
        sb.append("\ndescribe : ");
        sb.append("gps定位成功");

      } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {// 網(wǎng)絡(luò)定位結(jié)果
        sb.append("\naddr : ");
        sb.append(location.getAddrStr());
        //運營商信息
        sb.append("\noperationers : ");
        sb.append(location.getOperators());
        sb.append("\ndescribe : ");
        sb.append("網(wǎng)絡(luò)定位成功");
      } else if (location.getLocType() == BDLocation.TypeOffLineLocation) {// 離線定位結(jié)果
        sb.append("\ndescribe : ");
        sb.append("離線定位成功,離線定位結(jié)果也是有效的");
      } else if (location.getLocType() == BDLocation.TypeServerError) {
        sb.append("\ndescribe : ");
        sb.append("服務(wù)端網(wǎng)絡(luò)定位失敗,可以反饋IMEI號和大體定位時間到loc-bugs@baidu.com,會有人追查原因");
      } else if (location.getLocType() == BDLocation.TypeNetWorkException) {
        sb.append("\ndescribe : ");
        sb.append("網(wǎng)絡(luò)不同導(dǎo)致定位失敗,請檢查網(wǎng)絡(luò)是否通暢");
      } else if (location.getLocType() == BDLocation.TypeCriteriaException) {
        sb.append("\ndescribe : ");
        sb.append("無法獲取有效定位依據(jù)導(dǎo)致定位失敗,一般是由于手機的原因,處于飛行模式下一般會造成這種結(jié)果,可以試著重啟手機");
      }
      sb.append("\nlocationdescribe : ");
      sb.append(location.getLocationDescribe());// 位置語義化信息
      List<Poi> list = location.getPoiList();// POI數(shù)據(jù)
      if (list != null) {
        sb.append("\npoilist size = : ");
        sb.append(list.size());
        for (Poi p : list) {
          sb.append("\npoi= : ");
          sb.append(p.getId() + " " + p.getName() + " " + p.getRank());
        }
      }
      Log.e("描述:", sb.toString());
    }
  }

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

相關(guān)文章

  • Android自定義View之組合控件實現(xiàn)類似電商app頂部欄

    Android自定義View之組合控件實現(xiàn)類似電商app頂部欄

    這篇文章主要為大家詳細介紹了Android自定義View之組合控件,實現(xiàn)類似電商app頂部欄的相關(guān)資料,具有參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 深入Android 五大布局對象的應(yīng)用

    深入Android 五大布局對象的應(yīng)用

    本篇文章小編為大家介紹,深入Android 五大布局對象的應(yīng)用。需要的朋友參考下
    2013-04-04
  • Android音視頻開發(fā)只硬件解碼組件MediaCodec講解

    Android音視頻開發(fā)只硬件解碼組件MediaCodec講解

    在Android開發(fā)中提供了實現(xiàn)音視頻編解碼工具MediaCodec,針對對應(yīng)音視頻解碼類型通過該類創(chuàng)建對應(yīng)解碼器就能實現(xiàn)對數(shù)據(jù)進行解碼操作。本文通過示例詳細講解了MediaCodec的使用,需要的可以參考一下
    2023-01-01
  • 深入解析Android中的RecyclerView組件

    深入解析Android中的RecyclerView組件

    RecyclerView是Android 5.0以來新加入的組件,被廣泛認為是ListView的替代品,這里我們就結(jié)合理論與實踐來深入解析Android中的RecyclerView組件:
    2016-06-06
  • Android實現(xiàn)橫向二級菜單

    Android實現(xiàn)橫向二級菜單

    這篇文章主要為大家詳細介紹了Android實現(xiàn)橫向二級菜單的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android如何創(chuàng)建桌面快捷方式

    Android如何創(chuàng)建桌面快捷方式

    這篇文章主要為大家詳細介紹了Android創(chuàng)建桌面快捷方式的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Kotlin HttpURLConnection與服務(wù)器交互實現(xiàn)方法詳解

    Kotlin HttpURLConnection與服務(wù)器交互實現(xiàn)方法詳解

    簡單來說,HttpURLConnection 是發(fā)起HTTP請求的基礎(chǔ)類庫,提供了HTTP請求的基本功能,不過封裝的比較少,在使用時很多內(nèi)容都需要自己設(shè)置,也需要自己處理請求流和響應(yīng)流
    2022-09-09
  • 使用OkHttp包在Android中進行HTTP頭處理的教程

    使用OkHttp包在Android中進行HTTP頭處理的教程

    HTTP頭部處理是HTTP網(wǎng)絡(luò)編程中的基本操作,安卓中使用OkHttp包(github.com/square/okhttp)進行相關(guān)操作當然也是得心應(yīng)手,這里我們就來看一下使用OkHttp包在Android中進行HTTP頭處理的教程
    2016-07-07
  • Android實現(xiàn)原生鎖屏頁面音樂控制

    Android實現(xiàn)原生鎖屏頁面音樂控制

    這篇文章主要介紹了Android實現(xiàn)原生鎖屏頁面音樂控制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Android 消息機制問題總結(jié)

    Android 消息機制問題總結(jié)

    本文主要介紹Android 消息機制,這里整理了消息機制的詳細資料,和經(jīng)常出現(xiàn)的問題,希望能幫助大家對消息機制的理解
    2016-08-08

最新評論

饶河县| 青阳县| 天全县| 维西| 贵州省| 志丹县| 金华市| 焦作市| 六安市| 通州市| 邛崃市| 汤原县| 惠州市| 旬邑县| 上饶县| 紫金县| 阳城县| 昔阳县| 巴中市| 宾川县| 泽普县| 青龙| 奇台县| 偏关县| 交城县| 邳州市| 珲春市| 忻州市| 房山区| 河北省| 和静县| 庆城县| 威海市| 北京市| 新蔡县| 阿拉善左旗| 平利县| 林州市| 阳高县| 菏泽市| 荔波县|