uni-app怎么调用百度地图API uni-app中使用地图定位与检索

星降

星降

2026-05-28

441人浏览

原创

必须使用@dcloudio/uni-plugin-baidu-map官方插件,hbuilderx 3.9+内置支持,manifest.json配置ak后自动注入bmapgl对象;禁用vue-baidu-map等非适配库,因其不兼容小程序与nvue环境。

uni-app怎么调用百度地图api uni-app中使用地图定位与检索

uni-app 里调用百度地图 API 做定位与检索,不能直接引入 baidu-map-js-api 或 npm install vue-baidu-map —— 这俩在小程序和 nvue 环境下会报 undefined is not a functiondocument is not defined。必须走官方插件通道,且 H5、小程序、App 三端的初始化逻辑、坐标系、返回格式全都不一样。

用哪个插件?@dcloudio/uni-plugin-baidu-map 是唯一靠谱选择

这是 DCloud 官方维护的插件,HBuilderX 3.9+ 已内置支持,manifest.json 配置后自动注入全局 BMapGL 对象(注意是 BMapGL,不是老版 BMap)。别碰 uni-baidu-map 或社区封装的 Vue 组件,它们多数没处理好 iOS 的 info.plist 权限或小程序的 polyfill。

  • manifest.json 中填入百度地图 AK:"baidu_map": {"ak": "你的AK"}
  • H5 端需确保页面是 HTTPS 协议,否则 BMapGL.Map 初始化静默失败,network 面板能看到 403,但控制台无提示
  • 微信小程序端不需要额外配置 appid,但必须在「百度地图开放平台」把小程序的包名(如 wx1234567890abcdef)加进白名单,否则 LocalSearch.search() 返回空数组
  • App 端 iOS 必须在 info.plistNSLocationWhenInUseUsageDescription,否则 uni.getLocation 直接 fail,后续所有搜索/规划都卡在起点为空

uni.getLocation 拿到的坐标不能直接喂给百度搜索

百度地图 SDK 默认用 GCJ-02 坐标系(国测局加密),而 uni.getLocation 在不同平台返回的坐标系不统一:H5 返回 WGS84,微信小程序返回 gcj02,App 端默认 wgs84。直接传会导致搜索偏移几公里,比如搜“北京南站”却定位到丰台区荒地。

百度一镜
百度一镜

百度一镜是百度电商数字人直播平台,可用于数字人直播间创建、互动配置、直播脚本和AI工具使用。

下载
  • 正确做法:用 uni.getLocation({type: 'gcj02'}) 强制统一为 gcj02(仅微信小程序和 App 支持该 type,H5 不支持,得手动转)
  • H5 端必须调用百度官方坐标转换接口:BMapGL.Convertor.translate([lng, lat], 1, 5, (data) => {...}),其中 1 表示 WGS84 输入,5 表示转成 BD09LL(百度经纬度)
  • LocalSearch 构造时一定要传 bounds 参数,否则默认全国搜索,结果泛得离谱(只返回“北京市”这种一级行政区);正确写法:new BMapGL.LocalSearch(map, { bounds: new BMapGL.Bounds(swPoint, nePoint) })

搜索结果有了,但地图上不显示 marker 或 polyline

因为 BMapGL.MarkerBMapGL.Polyline 是百度原生对象,uni-app 的 <map></map> 组件根本不认。你看到控制台打印出路线数据,不代表它能自动渲染。

  • marker 要自己转:polyline 属性必须是数组,每个元素含 points(经纬度数组)、color(十六进制,带 #)、width(数字)、arrowLine(布尔值)等字段,不能用百度的 strokeColorsetStrokeColor
  • drivingRoute 返回的 routes[0].path 是点数组,但格式是 [{lng:xxx,lat:yyy},...],而 <map></map> 要求 points: [{latitude: yyy, longitude: xxx},...] —— 注意 key 名完全相反,且顺序是 lat/long,不是 lng/lat
  • 搜索结果里的 result.pois 每个 poi 的 point{x: lng, y: lat},也要手动映射成 {longitude: x, latitude: y} 才能塞进 <map></map>markers 数组

路径规划成功但起点/终点没标出来?检查 DrivingRoute.search() 的参数顺序

百度 SDK 的 DrivingRoute.search(start, end) 接口,start 和 end 必须是 BMapGL.Point 实例,不是普通对象,也不是字符串地址。传错类型不会报错,但返回的 routes 为空或只有概要信息。

  • 错误写法:drivingRoute.search('北京南站', '首都机场') —— 字符串地址只能用 LocalSearch 解析,不能直传规划接口
  • 正确流程:先用 LocalSearch 搜出两个地点的 poi.point,再用 new BMapGL.Point(poi.point.lng, poi.point.lat) 构造起点/终点
  • App 端(尤其 iOS)若未开启后台定位权限,uni.getLocation 在页面切后台后可能返回缓存旧坐标,导致规划路线起点漂移;建议加时间戳校验或强制刷新

最常被忽略的是坐标系混用和 polyline 字段名大小写——longitude 写成 lnglatitude 写成 lat,或者 color 少了 #,宽度传了字符串 "6" 而不是数字 6,都会导致地图上什么也不画。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关文章

百度地图
百度地图

百度地图作为新一代人工智能地图,服务覆盖全球200+城市及国家。导航可信赖、语音交互更简单、数据丰富更贴心的百度地图,致力于为用户提供更准确、更丰富、更易用的出行服务。有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1111

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

2284

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2154

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

2344

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

336

5

Maven零基础入门教程
Maven零基础入门教程

本合集由PHP中文网精心整理,提供Maven零基础入门到完整使用的保姆级教程。内容涵盖环境安装、核心配置、仓库管理及项目构建等核心知识点。通过详细步骤解析与代码示例,助你快速掌握Maven的依赖管理与自动化构建,轻松解决Java项目中的各种痛点,是新手入门与进阶的必备指南。

2026.08.05

2

18

Maven安装及配置教程
Maven安装及配置教程

本合集由PHP中文网精心整理,提供Maven安装配置与环境配置详情指南。内容涵盖Maven下载、解压安装、环境变量配置、阿里云镜像加速及本地仓库修改等全流程。教程通俗易懂,帮助开发者轻松解决依赖管理难题,快速掌握Maven核心构建技能,是Java开发者的必备实战指南。

2026.08.05

2

24

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

4

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

1

18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习