位置

获取位置

在国际上,坐标体系有多套标准,小程序支持WGS84标准和GCJ02标准,WGS84是地球坐标,国际上通用的坐标系。设备一般包含的GPS芯片或者北斗芯片所获取的经纬度是WGS84地理做白哦西。GCJ02坐标系为火星坐标系,是由中国国家测绘局指定的地理信息系统的坐标系统,它是由WGS84坐标系加密后的坐标系,它是在小程序中,查看位置需要使用GCJ02标准坐标。

wx.getLocation(Object)

用于获取当前的地理位置、速度,需要用户授权定位功能,当用户离开小程序后,该接口无法调用,当用户点击“显示在聊天顶部”时,此接口才可继续调用,Object参数属性如下:

属性

类型

默认值

必填

说明

最低版本

type

string

wgs84


wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标

 

altitude

string

false


传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度

1.6.0

success

function

 


接口调用成功的回调函数

 

fail

function

 


接口调用失败的回调函数

 

complete

function

 


接口调用结束的回调函数(调用成功、失败都会执行)

示例代码如下:

wx.getLocation({
  type:'wgs84',
  success: function(res) {
    console.log(res);
  },
})

选择位置

wx.chooseLocation(Object)

用于打开地图选择位置,用户选择后返回选中信息,Object参数属性如下:

属性

类型

默认值

必填

说明

success

function

 


接口调用成功的回调函数

fail

function

 


接口调用失败的回调函数

complete

function

 


接口调用结束的回调函数(调用成功、失败都会执行)

示例代码如下:

wx.chooseLocation({
  success: function(res) {
    console.log(res.address);
  },
})

查看位置

wx.openLocation(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: function(res) {
    wx.open({
      //显示当前地址
      latitude:res.latitude,
      longitude:res.longitude
    })
  },
})

地图组件控制

wx.createMapContent(Object)

用于创建并返回map上下文mapContent对象,map-Context通过mapId跟一个<map/>组件绑定,通过它可以操作对应的<map/>组件,map-Context对象方法如下:

方法

参数

说明

最低版本

getCenterLocation

OBJECT

获取当前地图中心的经纬度,返回的是 gcj02 坐标系,可以用于 wx.openLocation

 

moveToLocation


将地图中心移动到当前定位点,需要配合map组件的show-location使用

 

translateMarker

OBJECT

平移marker,带动画

1.2.0

includePoints

OBJECT

缩放视野展示所有经纬度

1.2.0

getRegion

OBJECT

获取当前地图的视野范围

1.4.0

getScale

OBJECT

获取当前地图的缩放级别

1.4.0

示例代码如下:

<map id="myMap" show-location/>
<button data-type='getCenterLocation' bindtap='action'>获取位置</button>
<button data-type="location" bindtap="action">移动位置</button>
Page({
  onReady:function(e){
    this.mapContext = wx.createMapContext('myMap');
  },
  action:function(e){
    var type = e.target.dataset.type,
    mapContext =this.mapContext;
    switch(type){
      //获取当前地图中心维度
      case 'getCenterLocation':
      mapContext.getCenterLocation({
        success:function(res){
          console.log(res.longitude+','+res.latitude);
        }
      });
      //定位到当前位置
      case 'location':
      mapContext.moveToLocation();
    }
  }
});