react native 获取地理位置

此版本是0.47
react native 官网介绍了这个 api Geolocation 但是这个api只能返回 经纬度 所以要把经纬度 通过逆地理位置转义 http://recode.ditu.aliyun.com/jsdoc/geocode_api.html 可通过这个阿里的开放接口
RN 0.55以下版本需要导入 不包括0.55

import Geolocation from 'Geolocation';

0.55 以及0.55以上 Android 上获取可能存在问题 官网介绍如下:


react native 获取地理位置
image.png

具体实现

import Geolocation from 'Geolocation';

    ......

  getlocal() {
    Geolocation.getCurrentPosition(
      val => {
        let ValInfo =
          '速度:' +
          val.coords.speed +
          '\n经度:' +
          val.coords.longitude +
          '\n纬度:' +
          val.coords.latitude +
          '\n准确度:' +
          val.coords.accuracy +
          '\n行进方向:' +
          val.coords.heading +
          '\n海拔:' +
          val.coords.altitude +
          '\n海拔准确度:' +
          val.coords.altitudeAccuracy +
          '\n时间戳:' +
          val.timestamp;
        this.setState({ LocalPosition: ValInfo });
        console.log("打印地理位置:"+`${val.coords.longitude},${val.coords.latitude}`)
        GET_GPRS({
          "l":`${val.coords.latitude},${val.coords.longitude}`,
          "type":111,
        }).then(res => {
          console.log(JSON.stringify(res))
        })
      },
      val => {
        let ValInfo = '获取坐标失败:' + val;
        this.setState({ LocalPosition: ValInfo }); //如果为空的话 没允许开启定位服务

      },
    );
  }

这里的 GET_GPRS 是自己封装的 fech请求
记得开启 位置访问权限
打印结果如下:

react native 获取地理位置
image.png

有点尴尬 好吧 给人家 大碗菜做了广告

权限不要忘记加


react native 获取地理位置
image.png