一个用于 百度定位(Baidu Location) 的 Flutter 插件维护分支,支持 Android / iOS 平台,提供单次定位、连续定位、地理围栏、设备方向等基础能力。
本仓库是 flutter_bmflocation 的维护分支(fork 版本),
已移除不受支持的 HarmonyOS(OHOS)相关代码,用于保证在新版本 Flutter 下的稳定性。
- 百度定位 SDK Flutter 封装
- 支持 Android / iOS 双平台
- 单次定位、连续定位、后台定位
- 地理围栏(圆形、多边形)
- 设备方向(Heading)监听
- 适配较新的 Flutter Stable 版本
- ❌ 不支持 HarmonyOS / OHOS
本 fork 已明确移除所有 HarmonyOS(OHOS)相关代码,包括但不限于:
Platform.isOhos判断逻辑ohos/平台目录- OHOS 专属配置与调用
- Flutter 官方目前不支持 HarmonyOS
- OHOS 分支在新版本 Flutter 中会导致 编译失败,报错:
Error: Member not found: 'isOhos'. - 本仓库仅专注于 Android / iOS 的稳定使用
lib/src/controller/bdmap_location_controller.dart(L123)lib/src/private/dispatcher/bdmap_location_options_dispather.dart(L59)
将 Platform.isIOS || Platform.isOhos 改为只判断 Platform.isIOS。
推荐使用 Git 方式依赖,避免 pub cache 被覆盖:
dependencies:
flutter_bmflocation:
git:
url: https://github.com/你的用户名/flutter_bmflocation.git
ref: main然后执行:
flutter clean
flutter pub get- 在
AndroidManifest.xml中配置 百度地图 AK - 添加必要权限(网络、定位、后台定位等)
- 按百度定位 Android SDK 官方文档完成初始化
- 在
AppDelegate中初始化 百度地图 AK - 在
Info.plist中配置定位权限描述:NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescription
- 确保当前网络环境可以正常访问百度定位服务
⚠️ 无线调试时请确保已允许本地网络(Local Network)权限
插件自带示例工程,位于 example/ 目录:
cd example
flutter run示例包含:
- 单次定位
- 连续定位
- 圆形地理围栏
- 多边形地理围栏
- 设备方向监听
- 本插件为 fork 版本,用于项目长期维护
- 不会因
flutter pub get或清理缓存而丢失修改 - 欢迎提交 Issue 或 PR 进行改进
本项目遵循原始 flutter_bmflocation 插件的许可证协议。
详见 LICENSE 文件。
- 原始仓库: https://github.com/baidu-map-flutter/flutter_bmflocation
- 原始版本: 3.8.3+1