codecamp

快应用 地理位置

接口声明

{"name": "system.geolocation"}

导入模块

import geolocation from '@system.geolocation' 
或 
const geolocation = require('@system.geolocation')

接口定义

geolocation.getLocation(OBJECT)

获取地理位置

权限要求

精确设备定位

参数:

参数名类型必填说明
timeoutLong设置超时时间,单位是 ms,默认值为 30000。在权限被系统拒绝或者定位设置不当的情况下,有可能永远不能返回结果,因而需要设置超时。超时后会使用 fail 回调
coordType 1050+String坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为 wgs84
successFunction成功回调
failFunction失败回调,原因可能是用户拒绝
completeFunction执行结束后的回调
success返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracy 1040+Number精确度
time 1040+Number时间
fail返回错误代码
错误码 说明
201 用户拒绝,获取定位权限失败
204 超时返回
1000 1000+ 系统位置开关关闭

示例:

geolocation.getLocation({
  success: function (data) {
    console.log(`handling success: longitude = ${data.longitude}, latitude = ${data.latitude}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

geolocation.openLocation(OBJECT)

使用快应用内置地图查看位置,并且允许拉起第三方地图应用发起导航

权限要求

精确设备定位

参数:

参数名类型必填说明
latitudeNumber纬度,范围为 -90~90,负数表示南纬
longitudeNumber经度,范围为 -180~180,负数表示西经
coordTypeString坐标系,支持 wgs84 和 gcj02,默认使用 wgs84
scaleNumber缩放比例,范围为 5~18,默认值是 18
nameString位置名
addressString地址的详细说明
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
fail 返回错误代码
错误码说明
201用户拒绝
202经纬度参数非法
1000跳转导航出错
1001未安装地图应用

示例:

geolocation.openLocation({
  latitude: 22.553594050274,
  longitude: 114.0586290118,
  success: function() {
    console.log(`open location success`)
  },
  fail: function(data, code) {
    console.log(`open location fail, code = ${code}`)
  },
  complete: function() {
    console.log(`open location complete`)
  }
})

geolocation.chooseLocation(OBJECT) 

打开快应用内置地图选择位置

权限要求

精确设备定位

参数:

参数名类型必填说明
latitudeNumber指定中心点纬度,如果为空则显示当前位置
longitudeNumber指定中心点经度,如果为空则显示当前位置
coordTypeString坐标系,支持 wgs84 和 gcj02,默认使用 wgs84。仅作用于指定中心点的经纬度坐标系,成功回调的返回值国内坐标固定使用 gcj02 坐标系,国外坐标固定使用 wgs84 坐标系
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
success 返回值:
参数名类型说明
nameString位置名称
addressString详细地址
coordTypeString返回值经纬度的坐标系,国内坐标固定使用 gcj02 坐标系,国外坐标固定使用 wgs84 坐标系
latitudeNumber纬度,浮点数,范围为 -90~90,负数表示南纬
longitudeNumber经度,浮点数,范围为 -180~180,负数表示西经
fail 返回错误代码
错误码说明
201用户拒绝
1000所选位置无效

示例:

geolocation.chooseLocation({
  success: function(data) {
    console.log(
      `choose location success: name = ${data.name}, address = ${data.address}, coordType = ${data.coordType}, latitude = ${data.latitude}, longitude = ${data.longitude}`
    )
  },
  fail: function(data, code) {
    console.log(`choose location fail, code = ${code}`)
  },
  complete: function() {
    console.log(`choose location complete`)
  }
})

geolocation.getLocationType(OBJECT) 1010+

获取系统当前支持的定位类型

权限要求

精确设备定位

参数:

参数名 类型 必填 说明
success Function 成功回调
fail Function 失败回调
complete Function 执行结束后的回调
success返回值:
参数名 类型 说明
types Array 支持的类型['gps','network']

示例:

geolocation.getLocationType({
  success: function (data) {
    console.log(`handling success: locationType = ${data.types}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

geolocation.subscribe(OBJECT)

监听地理位置。如果多次调用,仅最后一次调用生效

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
coordType 1050+String坐标系类型,可选值可通过 getSupportedCoordTypes 获取,默认为 wgs84
callbackFunction每次位置信息发生变化,都会被回调
failFunction失败回调,原因可能是用户拒绝
callback返回值:
参数名类型说明
longitudeNumber经度
latitudeNumber纬度
accuracy 1040+Number精确度
time 1040+Number时间
fail返回错误代码
错误码 说明
201 用户拒绝,获取定位权限失败
1000 1000+ 系统位置开关关闭

示例:

geolocation.subscribe({
  callback: function (data) {
    console.log(`handling success: longitude = ${data.longitude}, latitude = ${data.latitude}`)
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

geolocation.unsubscribe()

取消监听地理位置

参数:

示例:

geolocation.unsubscribe()

geolocation.getSupportedCoordTypes()

获取支持的坐标系类型

参数:

返回值:

字符串数组。当前支持的坐标系类型,如 [ 'wgs84' ]

示例:

var types = geolocation.getSupportedCoordTypes()

后台运行限制

manifest 中申请后可用。

后台运行详细用法参见 后台运行脚本


快应用 剪贴板
快应用 桌面图标
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

快应用 参考手册

快应用 安全

快应用 声音音频

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }