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

微信小程序开发- 位置API 学习笔记

核心知识点(对应 案例代码包里 所有场景)

1. 核心定位 API(对应 demo01、demo02)

表格

API 名称功能描述关键注意点对应 Demo 页面
wx.getLocation获取当前设备经纬度、速度、定位精度需配置权限 + 声明隐私接口,坐标系用 gcj02demo01/getLocation
wx.chooseLocation调起地图选点,返回位置名称、地址、经纬度需配置权限 + 声明隐私接口,无需手动定位demo01/chooseLocation
wx.openLocation打开微信原生地图,展示指定位置(可导航)无需声明隐私接口,需先获取经纬度(依赖 getLocation)demo02/openLocation

2. 地图组件高级控制(对应 demo03)

  • 核心前提:必须在页面 onReady 生命周期中,通过wx.createMapContext("mapId")创建地图上下文(mapId 对应 wxml 中 map 标签的 id)。
  • 常用控制方法(对应 demo03 各子页面):
    1. getCenterLocation:获取地图当前中心点经纬度
    2. moveToLocation:将地图视角移动到用户当前定位
    3. translateMarker:动画平移地图上的标记点(如模拟轨迹)
    4. includePoints:调整地图视角,让多个坐标点都显示在视野内
    5. getRegion:获取地图当前视野范围(东北 / 西南角坐标)
    6. getScale:获取地图当前缩放级别(数值越大,显示越详细)

3. 权限配置(报错关键,对应正确 app.json)

(1)权限配置(app.json 中)
"permission": { "scope.userLocation": { "desc": "用于获取您的位置信息" // 授权提示语,不可省略 } }
(2)隐私接口声明(app.json 中)
"requiredPrivateInfos": [ "getLocation", "chooseLocation" // 仅这两个,openLocation无需声明(易错点) ]
(3)其他可选配置
"requiredBackgroundModes": ["location"], // 后台定位(可选,按需添加) "lazyCodeLoading": "requiredComponents" // 适配苹果手机,避免定位失效

学习内容:

一、基础位置获取(demo01)

1. wx.getLocation

  • 功能:获取设备当前的地理位置信息
  • 获取数据:经度、纬度、速度、定位精度
  • 使用前提:需要用户授权定位权限
  • 坐标系:必须使用 gcj02 火星坐标系

2. wx.chooseLocation

  • 功能:打开微信地图界面,手动选择一个位置
  • 获取数据:位置名称、详细地址、经度、纬度
  • 特点:自带地图搜索、选点功能,无需自行开发地图界面
  • 使用前提:需要用户授权定位权限


二、 查看位置(demo02)

wx.openLocation

  • 功能:调用微信内置地图,查看指定的地理位置
  • 作用:展示目标位置,支持导航、查看周边等功能
  • 使用依赖:必须先获取经纬度(通常搭配 getLocation 使用)
  • 特点:无需声明隐私接口,无需创建地图组件,直接调用


三、地图组件高级控制(demo03)

核心前提

  • 必须使用<map>地图组件
  • 必须在页面onReady生命周期创建地图上下文对象mapCtx

1. getCenterLocation

  • 功能:获取当前地图显示区域的中心点经纬度

2. moveToLocation

  • 功能:将地图视角移动到当前用户定位位置
  • 效果:地图自动居中并显示用户所在位置

3. translateMarker

  • 功能:平移动地图上的标记点(marker)
  • 特点:支持动画效果,可模拟标记点移动轨迹

4. includePoints

  • 功能:自动调整地图视野,使多个坐标点全部显示在屏幕内
  • 适用场景:展示多个点位、路线、多门店等

5. getRegion

  • 功能:获取当前地图的视野范围
  • 返回数据:东北角、西南角经纬度坐标

6. getScale

  • 功能:获取当前地图的缩放级别
  • 说明:缩放值越大,地图显示越详细


四、核心知识点

  1. 权限配置:必须在 app.json 声明定位权限描述
  2. 隐私接口:getLocation、chooseLocation 必须在 requiredPrivateInfos 中声明
  3. 坐标系统一:所有定位相关功能必须使用 gcj02 坐标系
  4. 生命周期:地图上下文必须在 onReady 中创建
  5. 真机调试:定位、地图等功能必须在真机上正常运行,模拟器有限制

http://www.jsqmd.com/news/840986/

相关文章:

  • GESP考级通关秘籍:从一级到四级,这份保姆级备考路线图请收好(含真题解析)
  • 手把手教你用FANUC ROBOGUIDE搭建第一个涂胶仿真工作站(附模型导入避坑指南)
  • Docker部署SpringBoot项目(图文详解)——从零到上线保姆级教程
  • [实战] 制造业全尺寸报告(Full Dimension Report)编制规范与数字化处理流程详解
  • 制造业采购商务谈判智能助手,落地方法与授权规则设置:2026企业级智能体(Agent)实操全指南
  • 从零移植ry_key按键驱动到ESP32:教你用C语言为物联网设备添加组合键和手势识别
  • Warcraft Helper技术实现:解决魔兽争霸3在现代Windows系统上的兼容性问题
  • 黑马SpringBoot3+Vue3(实战篇)学习记录 一:新建数据库、新建项目
  • 5分钟掌握Alas:碧蓝航线智能助手的完整指南
  • 告别臃肿!这个只有两个文件的单片机GUI库,让你的51单片机也能玩图形界面
  • 为什么AI的错误毫无价值?如何理解AI的理解?
  • VirtualWife项目解析:基于LLM与向量数据库构建可长期记忆的AI智能体框架
  • 偏向性调节:解锁白细胞介素-2(IL-2)免疫治疗潜力的新钥匙
  • 银行证券业智能财务Agent技术选型:信创适配+私有化部署方案深度对比
  • 三步搞定Windows和Office永久激活:KMS_VL_ALL_AIO智能激活脚本终极指南
  • 2026年收藏指南:手把手攻克降AI率难题 - 降AI实验室
  • Perplexity学术搜索失效预警:当LLM幻觉遇上实证研究,3类高危误判场景及实时校验SOP
  • 批量处理二维码图片,真的需要联网吗?这款离线高效工具给你答案!
  • 瑞萨工业MPU集成认证PROFINET协议栈,加速伺服与网关开发
  • 基于C/S架构的远程控制工具设计与实现:以Vibe遥控器为例
  • Cursor使用指南
  • 2026 消费级激光雕刻机源头厂家推荐:小型 / 家用 / 便携式 / 高精度选择指南 - 海棠依旧大
  • 2026 南京租车深度测评 TOP5:本土老牌领跑,全场景靠谱之选 - 小艾信息发布
  • e2b安全沙箱实战:构建AI Agent代码执行环境与数据分析助手
  • 手把手教你用Nuclei检测Confluence CVE-2023-22527漏洞(附完整YAML配置)
  • 深入解析Roll:轻量级滚动动画库的设计原理与工程实践
  • 高校图书馆未公开的Perplexity学术协议:解锁DOI深度解析、跨库引文追踪与灰色文献捕获权限
  • Android 开发:Unable to start service Intent { ... } U=0: not found
  • 2026年10款学生党收藏的降AI率工具,免费降AI率亲测分享! - 降AI实验室
  • 从热设计小白到专家:我是如何用RC6-4-01这颗TEC搞定激光器温控的(真实项目复盘)