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

回到顶部