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

在 react native 中,我们所用的是react native 自带的api定位功能,无需引入第三方js。

react native 定位是通过Geolocation这个模块来实现的。想了解更多关于Geolocation的知识请点击下面 Geolocation自行了解,这里我们主要将他的几个方法。

static getCurrentPosition(geo_success, geo_error?, geo_options?)

Invokes the success callback once with the latest location info. Supported options: timeout (ms), maximumAge (ms), enableHighAccuracy (bool) On Android, this can return almost immediately if the location is cached or request an update, which might take a while.

static watchPosition(success, error?, options?)

Invokes the success callback whenever the location changes. Supported options: timeout (ms), maximumAge (ms), enableHighAccuracy (bool), distanceFilter(m)

static clearWatch(watchID)

第一个方法是获取第一次定位时的位置信息,第一个为成功时的回掉函数,还有error时的回掉,第三个是传状态的。

在请求成功函数中有以下属性:

经度 : coords.longitude

纬度 : coords.latitude

准确度 : coords.accuracy

海拔 : coords.altitude

海拔准确度 : coords.altitudeAcuracy

行进方向 : coords.heading

地面速度 : coords.speed

时间戳 : new Date(position.timestamp)

在请求失败函数中有4种情况(err.code状态值):

1为用户拒绝定位请问

2暂时获取不到位置信息

3为请求超时

4未知错误

第三个options是可选参数,属性如下:

enableHighAccuracy——指示浏览器获取高精度的位置,默认为false。当开启后,可能没有任何影响,也可能使浏览器花费更长的时间获取更精确的位置数据。

timeout——指定获取地理位置的超时时间,默认不限时。单位为毫秒。

maximumAge——最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。默认为0,表示浏览器需要立刻重新计算位置。

static watchPosition(success, error?, options?)

是多次改变了位置信息时才会触发,一般触发的可能性可能用户多次刷新数据,如一个人行车到其他城市,这时如果设置一个监听函数,只要watchid不一样,就会不断的触发

由于可能会出现缓存的情况,所以Geolocation 为我们提供了一个可以清除缓存的方法watchPosition(),改方法是 用于上一次的定位信息进行清除的。

对了,要启动react native 的定位功能的话,如果你是android 用户,你需要先在AndroidManifest.xml中加入以下权限

具体实现

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 获取地理位置的方法示例

本文地址: http://www.cppcns.com/wangluo/javascript/238467.html

reactnative 获取定位_react native 获取地理位置的方法示例相关推荐

  1. rn 地图根据区名获取经纬度_React Native获取地理位置(获取具体城市、经纬度)...

    并不是所有的APP都要获取你当前的地理位置的,但是有的APP对这方面是特别重要的,例如催收的行业,准确获取借款人的位置,才能不扑空~~ 基本上实现的原理其实很简单,前端要做的事情就是每次打开APP的时 ...

  2. java获取用户ip_Java获取用户访问IP及地理位置的方法详解

    本文实例讲述了Java获取用户访问IP及地理位置的方法.分享给大家供大家参考,具体如下: 获取用户访问的IP地址 /** * 获取用户ip地址 * @return */ public static S ...

  3. python图片直接保存到远端_Python实现获取本地及远程图片大小的方法示例

    本文实例讲述了Python实现获取本地及远程图片大小的方法.分享给大家供大家参考,具体如下: 了解过Pillow的都知道,Pillow是一个非常强大的图片处理器,这篇文章主要记录一下Pillow对图片 ...

  4. PLC中获取输入信号上升沿或下降沿的具体方法示例

    PLC中获取输入信号上升沿或下降沿的具体方法示例 边沿信号的基本概念 边沿信号:是指某个开关量从0→1或从1→0变化瞬间的状态信号,有上升沿.下降沿:边沿信号在检测到状态变化时,导通一个扫描周期. 边 ...

  5. Android 获取定位权限,获取位置信息(国家、地区、经纬)

    第一步 授权 在 AndroidManifest.xml 中加上位置信息权限按需要添加 <uses-permission android:name="android.permissio ...

  6. android 获取定位省份,android 获取当前定位信息

    android端没必要使用第三方地图的时候,可以直接使用 smart-location-lib 这个库: kotlin代码自己可以改成java的 引入使用: 一.引入库: implementation ...

  7. mysql从当前月向前推12_JavaScript获取当前时间向前推三个月的方法示例

    本文实例讲述了JavaScript获取当前时间向前推三个月的方法.分享给大家供大家参考,具体如下: /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml ...

  8. python读取gif图片并显示_Python爬虫实现获取动态gif格式搞笑图片的方法示例

    本文实例讲述了python爬虫实现获取动态gif格式搞笑图片的方法.分享给大家供大家参考,具体如下: 有时候看到一些喜欢的动图,如果一个个取保存挺麻烦,有的网站还不支持右键保存,因此使用python来 ...

  9. vue 微信公众号获取定位经纬度 腾讯地图逆地址解析为具体地址

    最近做项目需要用到 微信公众号获取定位,并将定位转换为具体地址的需求,找了挺多,最后整理下,分享给大家~ 我这里使用的是腾讯地图,也可以使用其他的如百度.高德等. 思路是,先使用微信开放文档的获取定位 ...

最新文章

  1. (转)数据库设计范式深入浅出
  2. 什么是Java实例初始化块
  3. MySQL DDL--MySQL 5.7版本Online DDL操作
  4. ABAP性能优化之正确使用”move” 语句
  5. 神奇的机械动态图,看了一遍又一遍!最后一个真神奇~
  6. 从pheatmap无缝迁移至ComplexHeatmap
  7. mysql 存储汉字_MySQL存储汉字
  8. Windows文件系统过滤驱动开发教程(4)
  9. 数据挖掘导论(一):数据挖掘的定义,方法,用途
  10. 【一】机器学习在网络空间安全研究中的应用
  11. 关于Egret项目升级引擎出现的问题
  12. windows10睡眠问题完美解决,设置睡眠时间不管用怎么办?
  13. 干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾
  14. java utility 是什么_Java Utility类代码示例
  15. jbod ugood 磁盘驱动状态_JBOD磁盘配置和StorCLI命令使用小结
  16. 深度学习驱动智能搜索引擎,RankBrain革了SEO的命
  17. 如何自制微信小视频发朋友圈
  18. 求解一元高次多项式方程的所有实数根的算法
  19. 安装 arm nginx aarch64
  20. 高级定时器实例-PWM互补输出与刹车功能

热门文章

  1. Outlook 2010如何更改脱机缓存数据OST文件位置?
  2. ????常用注意事项
  3. ubuntu下 mysql数据 自执行备份
  4. effective c++
  5. JavaScript编码风格指南
  6. C++ explicit constructor/copy constructor note
  7. 判断file空_File类的基本用法
  8. python代码规范快捷键_pycharm格式化代码 常用快捷键
  9. php5.5 php5.6,php 5.5 5.6的区别有哪些
  10. 芯片老化验证流程_如何正确评估芯片的老化程度?