当前位置: 首页 > news >正文

uni-app(位置1)

文章目录

  • 一、获取当前的地理位置、速度 uni.getLocation(OBJECT)
  • 二、打开地图选择位置 uni.chooseLocation(OBJECT)
  • 三、使用应用内置地图查看位置。uni.openLocation(OBJECT)


一、获取当前的地理位置、速度 uni.getLocation(OBJECT)

  • App平台 manifest中配置好自己的地图厂商key,在地图厂商的后台,填写正确包名和证书摘要。地图厂商的sdk会在运行时校验key、包名、证书的一致性
  • Web平台 manifest中配置好自己的地图厂商key,使用web接口如涉及白名单,需确保自己的域名在地图厂商那里正确配置了域名白名单
  • 确保在地图厂商那里配额足够
  • 确保在地图厂商那里有周边服务的权限。否则无法获取周围地址
  • 如果运行在微信浏览器中,可以使用微信的jssdk的定位能力。这个是微信向腾讯地图申请的key,开发者无需配置自己的key。
  1. OBJECT 参数说明
    参数名类型必填说明平台差异说明
    typeString默认为 wgs84 返回 gps 坐标,gcj02 返回国测局坐标,可用于 uni.openLocation 和 map 组件坐标,App 和 H5 需配置定位 SDK 信息才可支持 gcj02。
    altitudeBoolean传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度抖音小程序、飞书小程序、支付宝小程序不支持
    geocodeBoolean默认false,是否解析地址信息仅App平台支持(安卓需指定 type 为 gcj02 并配置三方定位SDK)
    highAccuracyExpireTimeNumber高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果App (3.2.11+)、H5 (3.2.11+)、微信小程序 (基础库 2.9.0+)
    timeoutString默认为 5,定位超时时间,单位秒仅飞书小程序支持
    cacheTimeoutNumber定位缓存超时时间,单位秒;每次定位缓存当前定位数据,并记下时间戳,当下次调用在cacheTimeout之内时,返回缓存数据仅飞书小程序、支付宝小程序支持
    accuracyString默默认为 high,指定期望精度,支持 high,best。当指定 high 时,期望精度值为100m,当指定 best 时期望精度值为20m。当定位得到的精度不符合条件时,在timeout之前会继续定位,尝试拿到符合要求的定位结果仅飞书小程序支持
    isHighAccuracyBoolean开启高精度定位App (3.4.0+)、H5 (3.4.0+)、微信小程序 (基础库 2.9.0+)
    successFunction接口调用成功的回调函数,返回内容详见返回参数说明。
    failFunction接口调用失败的回调函数
    completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
  2. success 返回参数说明
    参数说明
    latitude纬度,浮点数,范围为-90~90,负数表示南纬
    longitude经度,浮点数,范围为-180~180,负数表示西经
    speed速度,浮点数,单位m/s
    accuracy位置的精确度
    altitude高度,单位 m
    verticalAccuracy垂直精度,单位 m(Android 无法获取,返回 0)
    horizontalAccuracy水平精度,单位 m
    address地址信息(仅App端支持,需配置geocode为true)
    <template><view style="padding: 20px;"><button @click="getLocation">获取地理位置</button></view>
    </template><script>
    export default {data() {return {};},onLoad() {},methods: {getLocation() {uni.getLocation({type: 'wgs84',success: function (res) {console.log(res)console.log('当前位置的经度:' + res.longitude);console.log('当前位置的纬度:' + res.latitude);}})}},
    };	
    </script>
    
    在这里插入图片描述
    需要配置权限,若没有配置会有弹窗提示
    在这里插入图片描述
    若没有配置会有弹窗提示
    在这里插入图片描述
    配置完,需要点击允许
    在这里插入图片描述

二、打开地图选择位置 uni.chooseLocation(OBJECT)

  • 如果是cli或离线打包,需要配套升级cli和离线sdk
  • manifest中配置好自己的地图厂商key。web和app都需要。一般标准基座正常,自定义基座和打包后异常,都是这个原因
  • 确保在地图厂商那里配额足够
  • 确保在地图厂商那里有周边服务的权限。否则无法获取周围地址
  • web平台确保自己的域名在地图厂商那里正确配置了域名白名单
    可使用差异:App,H5,微信小程序,支付宝小程序,百度小程序,抖音小程序、飞书小程序,QQ小程序
  1. OBJECT 参数说明
    参数名类型必填说明平台差异说明
    latitudeNumber目标地纬度微信小程序(2.9.0+)、H5-Vue3(3.2.10+)
    longitudeNumber目标地经度微信小程序(2.9.0+)、H5-Vue3(3.2.10+)
    keywordString搜索关键字,仅App平台支持
    useSecureNetworkBoolean是否通过安全网络调用地点搜索、逆地址解析,默认false
    successFunction接口调用成功的回调函数,返回内容详见返回参数说明。
    failFunction接口调用失败的回调函数(获取定位失败、用户取消等情况下触发)
    completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
  2. success 返回参数说明
    参数说明
    name位置名称
    address详细地址
    latitude纬度,浮点数,范围为-90~90,负数表示南纬,使用 gcj02 国测局坐标系。
    longitude经度,浮点数,范围为-180~180,负数表示西经,使用 gcj02 国测局坐标系。
    <template><view style="padding: 20px;"><button @click="getLocation">获取地理位置</button></view>
    </template><script>
    export default {data() {return {};},onLoad() {},methods: {getLocation() {uni.chooseLocation({success: function (res) {console.log(res)console.log('位置名称:' + res.name);console.log('详细地址:' + res.address);console.log('纬度:' + res.latitude);console.log('经度:' + res.longitude);}});}},
    };	
    </script>
    
    在这里插入图片描述
    点击确认后打印的位置
    在这里插入图片描述
    注意:
    • 不同端,使用地图选择时基于的底层地图引擎不一样,详见地图map组件的地图服务商支持。
      • app 中也可以使用百度定位,在 manifest 中配置,打包后生效。
      • app-nvue 里只能用高德定位和Google地图(3.4+),不能用百度地图。另外选择地图、查看地图位置的API也仅支持高德地图和Google地图(3.4+)。所以App端如无特殊必要,建议使用高德地图。
    • H5 端 使用地图和定位相关,需要在 manifest.json 内配置腾讯或谷歌等三方地图服务商申请的秘钥(key)。
    • 微信内置浏览器 中可使用微信js sdk,详见
    • chooseLocation 属于封装型API,开发者若觉得不够灵活,可自行基于原始的 map 组件进行封装。插件市场已经有各种封装样例了。
    • 若 Android App端 位置不准,见上文 uni.getLocation 的注意事项
    • 微信小程序在2023年10月17日之后,使用API需要配置隐私协议

三、使用应用内置地图查看位置。uni.openLocation(OBJECT)

可使用差异:App,H5,微信小程序,支付宝小程序, 百度小程序 ,抖音小程序、飞书小程序,元服务 小红书小程序

  1. OBJECT 参数说明
参数名类型必填说明平台差异说明
latitudeFloat纬度,范围为-90~90,负数表示南纬,使用 gcj02 国测局坐标系
longitudeFloat经度,范围为-180~180,负数表示西经,使用 gcj02 国测局坐标系
scaleInt缩放比例,范围5~18,默认为18微信小程序
nameString位置名支付宝必填
addressString地址的详细说明支付宝必填
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
<template><view style="padding: 20px;"><button @click="getLocation">获取地理位置</button></view>
</template><script>
export default {data() {return {};},onLoad() {},methods: {getLocation() {uni.getLocation({type: 'gcj02', //返回可以用于uni.openLocation的经纬度success: function (res) {console.log(res)const latitude = res.latitude;const longitude = res.longitude;uni.openLocation({latitude: latitude,longitude: longitude,success: function (succ) {console.log(succ, 'success');}});}});}},
};	
</script>

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/542045.html

相关文章:

  • 某手sig3-ios算法 Chomper黑盒调用
  • 登录-05.JWT令牌-介绍
  • Mac下Python版本管理,适用于pyenv不起作用的情况
  • Ubuntu 服务器Llama Factory 搭建DeepSeek-R1微调训练环境
  • 【redis】redis内存管理,过期策略与淘汰策略
  • RabbitMQ学习—day6—死信队列与延迟队列
  • seacmsv9联合注入数据以及绕过 ORDERBY
  • day58 第十一章:图论part08
  • 网络安全-openssl工具
  • Java面试第六山!《MySQL基础知识点》
  • 云计算中的API网关是什么?为什么它很重要?
  • 【WebGL】fbo双pass案例
  • Unity面板介绍_层级面板(23.1.1)
  • 详解Nginx 配置
  • 数据库系统概念
  • 51单片机学习之旅——定时器
  • 一台服务器将docker image打包去另一天服务器安装这个镜像
  • QT串口通信之二,实现单个温湿度传感器数据的采集(采用Qt-modbus实现)
  • 基于SpringBoot的校园消费点评管理系统
  • 【小沐学Java】VSCode搭建Java开发环境
  • 《操作系统 - 清华大学》8 -4:进程管理:进程控制结构
  • RPC 框架项目剖析
  • C++ Boost面试题大全及参考答案
  • 关于Transparent native-to-ascii conversion
  • js数据类型检测
  • go 模块管理
  • 记一次复杂分页查询的优化历程:从临时表到普通表的架构演进
  • 基于 Python 的项目管理系统开发
  • java面试场景问题
  • JS宏实例:数据透视工具的制作(四)