百度定位API

fat1995發表於2016-05-08

概述

在這裡給大家分享一下使用百度地圖的定位API的經驗,百度地圖的所有API 都是免費提供給開發者的,只要開發者申請金鑰就行,能力有限,不對的地方還請大家多多指教,不喜勿噴哦! kensoon918@163.com only for feedback.

整合百度定位API

要想在自己的專案裡面整合百度定位的API,首先你得到百度開放平臺去申請自己的應用AK,然後下載相應的開發包,按照百度開放平臺的指示將下載下來的開發包整合到自己的專案裡面。

使用eclipse開發的開發者,只需要將SO的資料夾放到libs下即可;使用AndroidStutio的開發者除了上述操作,還需要在build.gradle中配置SO的使用,如下所示:

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

在application標籤中宣告service元件,每個app擁有自己單獨的定位service

<service 
         android:name="com.baidu.location.f" 
         android:enabled="true" 
         android:process=":remote">
</service>

宣告使用許可權

<!-- 這個許可權用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 這個許可權用於訪問GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用於訪問wifi網路資訊,wifi資訊會用於進行網路定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 獲取運營商資訊,用於支援提供運營商資訊相關的介面-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 這個許可權用於獲取wifi的獲取許可權,wifi資訊會用來進行網路定位-->
<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" />
<!-- SD卡讀取許可權,使用者寫入離線定位資料-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

設定AccessKey,在application標籤中加入

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="key" />       //key:開發者申請的key

import相關類

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.BDNotifyListener;//假如用到位置提醒功能,需要import該類
import com.baidu.location.Poi;

開始定位

你可以通過百度提供的相關類參考來了解具體怎麼使用,在程式碼裡面的簡單實現如下:

//定位的Client

    LocationClient mClient = new LocationClient(getContext());
    //需要一個option 來設定 Client
    LocationClientOption mOption = new LocationClientOption();
    option.setOpenGps(true); //開啟GPS
    option.setCoorType("gcj02"); //設定座標型別
    option.setScanSpan(1000);   //定位間隙
    option.setIsNeedAddress(true); //是否需要語義化的地址
    //......
    //將Option 設定到 Client
    mClient.setLocOption(mOption);
    //設定監聽器
    mClient.registerLocationListener(new BDLocationListener() {
        @Override
        public void onReceiveLocation(BDLocation bdLocation) {
            //定位完成過後的回掉
        }
    });

#總結


相關文章