位置信息API

位置信息API

  • 一、获取当前位置:wx.getLocation(object)
  • 二、选择位置:wx.chooseLocation(object)
  • 三、打开位置:wx.openLocation(object)
  • 四、监听位置事件
  • 五、地图组件控制API
  • 六、收货地址API:wx.chooseAddress(object)

一、获取当前位置:wx.getLocation(object)

《wx.getLocation(object)参数说明》

字段 是否必填 数据类型 含义
type string 返回GPS坐标,默认wgs84。gcj02返回可用于wx.openLocation的坐标。
altitude boolean 传入处会返回高精度的信息,但会降低接口返回的速度。
isHightAccuracy boolean 开启高精度定位
hightAccuracyExpireTime number 高精度定位超时时间(ms),指定时间返回最高精度,该值在3000ms以上,高精度定位才有效果
success function 调用成功的回调函数
fail function 调用失败的回调函数
complete function 调用结束的回调函数(成功、失败都会执行)

《上面success返回参数说明》

字段 含义
latitude 纬度,浮点数。-90——90,正北纬,负南纬
longitude 经度,浮点数。-180——180,正东经,负西经
speed 速度,浮点数。单位m/s
accuracy 位置的精确度
verticalAccuracy 垂直精度,单位m(安卓系统无法获取,返回0)
horizontalAccuracy 水平精度,单位m
//index.js
Page({
  onLoad:function () {
    wx.getLocation({
      type:"wgs84",
      success:function (res) {
        //......
      }
    })
  }
});

使用wx.getLocation()获取位置信息时,需要在app.json文件中声明permission字段。

  "permission":{
    "scope.userLocation": {
      "desc": "点击确定按钮获取地理位置信息"
    }
  }

二、选择位置:wx.chooseLocation(object)

调用前需要用户授权scope.userLocation才能使用。
《wx.chooseLocation(object)参数说明》

字段 是否必填 数据类型 含义
latitude number 目标地纬度
longitude number 目标地经度
success function 调用成功的回调函数
fail function 调用失败的回调函数
complete function 调用结束的回调函数(成功、失败都会执行)

《上面success返回参数说明》

字段 含义
latitude 纬度,浮点数。-90——90,正北纬,负南纬
longitude 经度,浮点数。-180——180,正东经,负西经
name 位置信息
address 详细地址
Page({
  onLoad:function () {
    wx.chooseLocation({
      success:function (res) {
        //......
      }
    })
  }
});

三、打开位置:wx.openLocation(object)

《wx.openLocation(object)参数说明》

字段 是否必填 数据类型 含义
latitude number 纬度,-90——90,使用gcj02国测局坐标系
longitude number 经度,-180——180,
scale number 缩放比例,5-18,默认18
name string 位置信息
address string 详细地址
success function 调用成功的回调函数
fail function 调用失败的回调函数
complete function 调用结束的回调函数(成功、失败都会执行)
// index.js
Page({
  onLoad:function () {
    wx.getLocation()({
      type:"gcj02",
      success:function (res) {
        var latitude = res.latitude;
        var longitude = res.longitude;
        wx.openSetting({
          latitude:latitude,
          longitude:longitude,
          success:function () {}
        })
      }
    })
  }
});

四、监听位置事件

—— ——
wx.onLocationChange(function callback) 用于实时监听位置变化事件
wx.startLocationUpdate(object object) 用于开启小程序进入前台时,接收位置消息,调用前需要用户授权scope.userLocation
wx.startLocationUpdateBackground(object object) 用于开启小程序,前后均接收位置信息,调用前需要用户授权scope.userLocationBackground
wx.stopLocationUpdate(object object) 用于关闭监听实时位置变化,前后都停止接收消息

五、地图组件控制API

wx.createMapContext(mapId)地图控制组件API用来创建并返回MapContext对象。MapContext对象提供了如下方法:

  1. MapContext.getCenterLocation():获取当前地图中心的经纬度,返回gcj02坐标系,可用wx.openLocation();
  2. MapContext.moveToLocation(object object):将地图中心移至当前定位点,此时需要设置地图组件show-location为true;
  3. MapContext.translateMarker(object object):平移marker,带动画;
  4. MapContext.includePoints(object object):缩放实业,展示所有经纬度;
  5. MapContext.getRegion():获取当前地图的视野范围;
  6. MapContext.getRotate():获取当前地图的旋转角;
  7. MapContext.getSkew():获取当前地图的倾斜角;
  8. MapContext.getScale():获取当前地图的缩放级别;
  9. MapContext.setCenterOffset(object object):设置地图中心偏移,向后,乡下为增长。屏幕比例范围为0.25-0.75,默认偏移为[0.5,0.5]
<map id="myMap" show-location/>
<button type="primary" bind:tap="getCenterLocation">获取位置button>
<button type="primary" bind:tap="moveToLocation">移动位置button>
//map.js
Page({
  onReady:function (e) {
    this.mapCtx=wx.createMapContext('myMap', component)
  },
  getCenterLocation:function () {
    // 获取当前地图中心的经纬度
    this.mapCtx.getCenterLocation({
      success:function (res) {
        // ...
      }
    })
  },
  moveToLocation:function () {
    // 将地图中心移至当前定位点
    this.mapCtx.moveToLocation();
  }
});

六、收货地址API:wx.chooseAddress(object)

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

Page({
  onLoad:function () {
    wx.chooseAddress({
      success:function (res) {
        // ...
      }
    })
  },
});

《上面success返回参数说明》

字段 含义
userName 收货人姓名
postalCode 邮编
proviceName
cityName 城市
countryName 国家
streetName 街道
detailnfo 详细地址
telNumber 收货人手机号
errMsg 错误信息
detailnfo 新选择器详细收货地址信息

你可能感兴趣的:(微信小程序,微信小程序,位置api,位置信息api)