(1)使用微信内置地图查看位置

wx.openLocation(Object object)

使用微信内置地图查看位置

参数

Object object

属性 类型 默认值 必填 说明
latitude number   纬度,范围为-90~90,负数表示南纬。使用 gcj02 国测局坐标系
longitude number   经度,范围为-180~180,负数表示西经。使用 gcj02 国测局坐标系
scale number 18 缩放比例,范围5~18
name string   位置名
address string   地址的详细说明
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success (res) {
const latitude = res.latitude
const longitude = res.longitude
wx.openLocation({
latitude,
longitude,
scale:
})
}
})

(2)获取当前的地理位置、速度

当用户离开小程序后,此接口无法调用

wx.getLocation(Object object)

调用前需要 用户授权 scope.userLocation

获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。

参数

Object object

属性 类型 默认值 必填 说明 最低版本
type string wgs84 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标  
altitude string false 传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度 1.6.0
success function   接口调用成功的回调函数  
fail function   接口调用失败的回调函数  
complete function   接口调用结束的回调函数(调用成功、失败都会执行)  

object.success 回调函数

参数
Object res
属性 类型 说明 最低版本
latitude number 纬度,范围为 -90~90,负数表示南纬  
longitude number 经度,范围为 -180~180,负数表示西经  
speed number 速度,单位 m/s  
accuracy number 位置的精确度  
altitude number 高度,单位 m 1.2.0
verticalAccuracy number 垂直精度,单位 m(Android 无法获取,返回 0) 1.2.0
horizontalAccuracy number 水平精度,单位 m 1.2.0

示例代码

wx.getLocation({
type: 'wgs84',
success (res) {
const latitude = res.latitude
const longitude = res.longitude
const speed = res.speed
const accuracy = res.accuracy
}
})

注意

  • 工具中定位模拟使用IP定位,可能会有一定误差。且工具目前仅支持 gcj02 坐标。
  • 使用第三方服务进行逆地址解析时,请确认第三方服务默认的坐标系,正确进行坐标转换。

人工按钮授权,获取位置信息代码:

<button bindtap="getLocation">获取</button>

  getLocation(){
var _this = this;
wx.openSetting({
success(res) {
if (res.authSetting['scope.userLocation']) {
wx.getLocation({
type: 'wgs84',//默认wgs84是全球定位系统获取的坐标,gcj02是国家测绘局给出的坐标
success: (res) => {
console.log('经度' + res.longitude + ',纬度' + res.latitude);
_this.setData({
latitude: res.latitude,
longitude: res.longitude
})
}
})
}
}
})
}

【拓展】箭头函数this指向

谈到this指向的时候箭头函数的this指向和普通函数不一样的,

=>this指向的是定义时this指向的对象,不会改变

function()声明函数时的this指向会指向使用时所在的对象

所以在上面案例中,如果用交通员函数,则不用在最值前重定义this为_this

(3)打开地图选择位置wx.chooseLocation(Object object)

wx.chooseLocation(Object object)

调用前需要 用户授权 scope.userLocation

打开地图选择位置。

参数

Object object

属性 类型 默认值 必填 说明
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数
Object res
属性 类型 说明
name string 位置名称
address string 详细地址
latitude string 纬度,浮点数,范围为-90~90,负数表示南纬。使用 gcj02 国测局坐标系
longitude string 经度,浮点数,范围为-180~180,负数表示西经。使用 gcj02 国测局坐标系

.

微信小程序API~地理位置location的更多相关文章

  1. 微信小程序获取地理位置授权

    微信小程序获取地理位置授权,首先需要在app.json中添加配置: "permission": { "scope.userLocation": { " ...

  2. 微信小程序api拦截器

    微信小程序api拦截器 完美兼容原生小程序项目 完美兼用小程序api的原本调用方式,无痛迁移 小程序api全Promise化 和axios一样的请求方式 小程序api自定义拦截调用参数和返回结果 强大 ...

  3. 微信小程序 API

    微信小程序 API https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html demo https://de ...

  4. 微信小程序获取地理位置

    小程序只支持获取当前位置的经纬度,并不能直接获取到地理名称,需要通过第三方来逆地址解析,这里我选择的是腾讯位置服务 在使用前需要去申请key,这里是地址:https://lbs.qq.com/cons ...

  5. 微信小程序-获取地理位置

    近期公司使用微信小程序开发一套应用,涉及到使用小程序的获取地理位置接口,但是在使用测试过程中发现获取的经纬度偏差较大, 之后进行了一番搜索,终于找到了, 原文地址:http://blog.csdn.n ...

  6. 微信小程序 API 基础

    其实还有一些组件,没有提,因为那些组件跟 API 的功能差不多,API 可能比他会更好一点: 具体可见官方文档 基础: 判断接口是否可用:wx.canIUse(a) a 代表:接口名字 返回值:布尔 ...

  7. 微信小程序 API 数据缓存

    微信小程序 数据缓存 (类似于 cookie) wx.setStorage() 将数据存储在本地缓存中制定的 key 中.会覆盖掉原来该 key 对应的内容,数据存储生命周期跟小程序本身一致,即除用户 ...

  8. 微信小程序API交互的自定义封装

    目录 1,起因 2,优化成果 3,实现思路 4,完整代码 1,起因 哪天,正在蚂蚁森林疯狂偷能量的我被boss叫过去,告知我司要做一个线上直播公开课功能的微信小程序,博主第一次写小程序,复习了下文档, ...

  9. 微信小程序API 文档快速参考索引

    内容那么多,这个页面到底做了什么? 第一:解决微信文档APi文档使用不便: 第二:解决了内容搜索与索引:—— 最好是写成全文索引文档,但是比较需要时间,而且更新是一件麻烦的事:所以以下是直接 连接官网 ...

随机推荐

  1. GenericObjectPool

    commons-pool2源码走读(四) 对象池实现GenericObjectPool 2018年05月27日 18:24:56 蓝墨49 阅读数 1787   版权声明:本文为博主原创文章,遵循CC ...

  2. (转)在高分辨率下eclipse,STS,等软件工具栏图标过小的问题方法总结

    背景:在高分辨率情况下,sts工具栏图标超小,肉眼看不清.按照方法二能够满足需求,开心 https://blog.csdn.net/u012687923/article/details/8032437 ...

  3. Influx Sql系列教程五:insert 添加数据

    接下来开始进入influxdb的curd篇,首先我们看一下如何添加数据,也就是insert的使用姿势 在进入本篇之前,对于不了解什么是retention policy, tag, field的同学,有 ...

  4. Influx Sql系列教程三:measurement 表

    在influxdb中measurement相当于mysql中的表,可以理解为一条一条记录都是存与measurent中的,一个数据库中可以有多个measurement,一个measurement中可以存 ...

  5. win10安装网络适配器

    上面这个有些叫Microsoft Loopback Adapter

  6. SpringMVC中静态资源的处理

    web项目中web.xml配置 在一个使用springmvc的web项目中,必然在web.xml中要配置前端控制器DispatcherServlet <servlet> <servl ...

  7. eclipse下载SpringBoot插件及创建SpringBoot项目

    一.eclipse在线下载SpringBoot插件 1.help->eclipse marketplace->popular-选择spring tool suite(STS)进行下载 ​ ...

  8. 一起来学Spring Cloud | 第八章:消息总线(Spring Cloud Bus)

    上一章节,我们讲解了分布式配置中心spring cloud config,我们把配置项存放在git或者本地,当我们修改配置时,需要重新启动服务才能生效.但是在生产上,一个服务部署了多台机器,重新启动比 ...

  9. Python中的数据类型、变量、字符编码、输入输出、注释

    数据类型 number(数字) 用于存储类型,通常分为int.long.float.complex: int:32位机器上占32位,取值范围为-231 ~ 231 - 1:64位机器上占64位,取值范 ...

  10. gdb调试常用功能

    一.gdb中宏定义 macro define list_entry(ptr, type, member) ((type)( (char)ptr - (unsigned long)(&((typ ...