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 安卓应用中集成百度地图基础功能。
 
        
       
                     
                   
                    

