小程序中如何获取地理位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序中如何获取地理位置相关的知识,希望对你有一定的参考价值。

参考技术A 由于我们刚进入页面的时候,就需要获取到对应的地理位置,所以我们需要把方法写入app.js全局文件中,然后将其存入storage中,由于存储的要求必须是字符串,所以我们存入的时候需要将其转化为字符串,使用到的时候再将其转换为对象。需要将其写在try catch里面。

utils/getLocation.js(这是封装好的)

app.js

再其他页面使用的时候,在onLoad中将其存入到data里面,使用的时候只需要调用data(_this.data.addressInfo)里面的数据即可

注意:像这样通用的,复用的属性或者方法,都可以这样去写,例如openid,获取地理位置等。

微信小程序获取位置信息

微信小程序获取坐标
作者:子长
联系地址:shang101527@163.com

微信小程序可根据getLocation获取用户的地理位置信息,包含经纬度、移动速度、海拔信息,也可使用onLocationChange实时获取位置。测试了一下,坐标和海拔还是比较准确的。

鉴于部分同学提到坐标误差大的问题:其一,可能是在开发者工具中遇到该问题,原因是电脑中没有gps模块,无法准确获取位置,一般通过ip定位到行政区域;其二,坐标格式没有正确使用,微信提供了两种格式wgs84gcj02,前者是全球GPS系统使用的标准格式,后者是中国测绘局公布的国标,两者定位有一定偏差。这就要求开发者以何种方式获取的坐标,就应以何种方式解析;也可对坐标转换后再解析。

1、获取当前位置

对于用户已授权定位的可直接通过以下方式获取:

    wx.getLocation({
      type: \'wgs84\',
      isHighAccuracy: true,
      altitude: true,
      success (res) {
        cosnole.log([res.longitude, res.latitude])
      },
    })

对于不确定用户是否已开启定位权限的,应该分两种情况处理:
1、用户从未同意或拒绝授权定位权限的,可直接通过authorize发起授权,授权成功后即可获取位置信息。
2、由于微信为了更好的用户体验,当用户第一次放弃授权定位权限后,在此后使用的过程中,不会再向用户发起授权。这就需要引导用户开启定位权限。若authorize时提示authorize:fail ...,可通过openSetting引导用户开启授权,用户授权后即可获取位置信息

2、获取实时位置

实时位置信息同样需要用户授权;
微信提供了onLocationChange来监听实时位置信息,需要结合stopLocationUpdate小程序前台运行时监听)、startLocationUpdateBackground(小程序前后台运行时监听) 使用,如下:

// 实时回调
   locationChangeFn = function(res) {
      console.log(\'location change\',res.latitude,  self.location)
    }
    wx.startLocationUpdate({
      success(res){
        wx.onLocationChange(locationChangeFn )
      },
      fail(err){
      },
    })
// 离开时记着关闭监听
    wx.offLocationChange(locationChangeFn)

注:实时定位反应稍微慢一点,一般五秒后才能返回新的坐标,原因是多方面的,比如天气、建筑物、数据传输、数据处理等等。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

以上是关于小程序中如何获取地理位置的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序如何获取当前行号

小程序的「获取URL Scheme」能力

微信小程序获取到位置坐标后,怎么获取具体地理位置信息

微信小程序开发过程中获取位置信息

微信小程序怎么打开地理位置 很急 谢谢!!!

获取任意小程序的页面地址