1. 程式人生 > >React Native獲取地理位置(獲取具體城市、經緯度)

React Native獲取地理位置(獲取具體城市、經緯度)

並不是所有的APP都要獲取你當前的地理位置的,但是有的APP對這方面是特別重要的,例如催收的行業,準確獲取借款人的位置,才能不撲空~~

基本上實現的原理其實很簡單,前端要做的事情就是每次開啟APP的時候獲取一下手機當前的位置,或者每隔幾分鐘就重新獲取一次。

注:RN提供的方法只能獲取到經緯度,不會直接給你具體的城市或者街道,如果要的話,可以用百度或者高德的逆地理編碼介面去轉,不過一般前端只是傳經緯度給後端,具體後端要拿去做什麼操作,就不歸前端管了。當然,如果你的APP要顯示你的當前城市,你也可以用介面轉然後顯示出來。

下面是我簡單實現的程式碼:

  componentDidMount() {
    // APP啟動的時候獲取地理位置
    this.getPosition();
  }

 /** 獲取地理位置(經緯度) */
  getPosition = (): void => {
    /** 獲取地理位置 */
    navigator.geolocation.getCurrentPosition(
      (position: any) => {
        // console.warn('成功:' + JSON.stringify(position));
        const positionData: any = position.coords;
        // 經度:positionData.longitude
        // 緯度:positionData.latitude

        // 最後一步 todo:高德 || 百度地圖逆地理編碼轉~~具體就是調個介面把經緯度丟進去就行了

      },
      (error: any) => {
        console.warn('失敗:' + JSON.stringify(error.message))
      }, {
        // 提高精確度,但是獲取的速度會慢一點
        enableHighAccuracy: true,
        // 設定獲取超時的時間20秒
        timeout: 20000,
        // 示應用程式的快取時間,每次請求都是立即去獲取一個全新的物件內容
        maximumAge: 1000
      }
    );
  }