uniapp 安卓如何集成百度地图
在uniapp中开发安卓应用时,如何正确集成百度地图SDK?目前按照官方文档配置后,地图无法正常显示,也没有报错信息。具体需要配置哪些关键参数,比如SHA1、包名等?是否有完整的步骤示例或常见问题排查方法?
2 回复
在uniapp中集成百度地图,需先申请百度地图Android SDK密钥,然后在manifest.json中配置应用包名和密钥。使用条件编译,仅Android平台引入百度地图SDK。可通过map组件或JS API调用。
在 UniApp 中集成百度地图,可以通过以下步骤实现:
1. 获取百度地图 SDK
- 访问百度地图开放平台(lbsyun.baidu.com),注册账号并创建应用。
- 获取 Android 平台的 API Key(应用类型选择“Android SDK”)。
2. UniApp 项目配置
修改 manifest.json:
在 "app-plus" -> "distribute" -> "android" 下添加百度地图配置:
{
"permissions": {
"Android": [
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />",
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />"
]
},
"plugins": {
"maps": {
"BDMap": {
"key": "你的百度地图 API Key"
}
}
}
}
添加原生插件(如果需要):
- 在 HBuilderX 中,选择项目 -> 原生插件配置 -> 选择“百度地图”插件(如官方或第三方提供)。
3. 使用地图组件
在页面中通过 map 组件调用:
<template>
<view>
<map
:latitude="latitude"
:longitude="longitude"
:markers="markers"
style="width: 100%; height: 300px;">
</map>
</view>
</template>
<script>
export default {
data() {
return {
latitude: 39.909, // 默认纬度(北京)
longitude: 116.397, // 默认经度
markers: [{
latitude: 39.909,
longitude: 116.397,
title: '位置标签'
}]
}
}
}
</script>
4. 注意事项
- 权限申请:在 Android 中需动态申请位置权限(UniApp 可使用
uni.authorize或uni.getLocation触发权限弹窗)。 - 打包配置:使用自定义基座或云打包时,确保
manifest.json中的 API Key 正确。 - 定位功能:通过
uni.getLocation获取设备位置:uni.getLocation({ type: 'gcj02', success: (res) => { this.latitude = res.latitude; this.longitude = res.longitude; } });
常见问题
- 地图不显示:检查 API Key、网络权限及打包配置。
- 定位偏差:确认坐标系(百度地图需使用
bd09ll,UniApp 默认gcj02,需转换)。
通过以上步骤,即可在 UniApp 安卓应用中集成百度地图基础功能。

