csp_amap_flutter_base
高德地图 Flutter 插件基础依赖库,为 Flutter 应用集成高德地图 SDK 提供统一的接口封装。
📱 功能特性
- 🗺️ 定位服务 - 提供精确的位置定位功能
- 🔍 POI 搜索 - 支持周边兴趣点搜索
- 🔑 API Key 管理 - 统一的 API Key 配置管理
- 🔒 隐私声明 - 符合隐私政策要求的声明配置
- 🛠️ 工具类 - 提供常用的地图工具和实用方法
- 📱 跨平台 - 同时支持 Android、iOS 和 HarmonyOS 平台
🚀 快速开始
安装依赖
在你的 pubspec.yaml
文件中添加依赖:
dependencies:
csp_amap_flutter_base: ^1.0.0
然后运行:
flutter pub get
导入库
import 'package:csp_amap_flutter_base/csp_amap_flutter_base.dart';
📖 使用方法
1. API Key 配置
// 设置高德地图 API Key
AmapApiKey.setApiKey(
androidKey: 'your_android_api_key',
iosKey: 'your_ios_api_key',
ohosKey: 'your_harmonyos_api_key',
);
2. 隐私声明配置
// 配置隐私声明
AmapPrivacyStatement.setPrivacyStatement(
hasContains: true,
hasShow: true,
hasAgree: true,
);
3. 定位服务
// 获取当前位置
AmapLocation.getCurrentLocation((location) {
print('纬度: ${location.latitude}');
print('经度: ${location.longitude}');
});
4. POI 搜索
// 搜索周边POI
AmapPoi.searchPoi(
keyword: '餐厅',
city: '北京市',
callback: (results) {
// 处理搜索结果
for (var poi in results) {
print('POI名称: ${poi.name}');
print('POI地址: ${poi.address}');
}
},
);
📁 项目结构
lib/
├── csp_amap_flutter_base.dart # 主入口文件
└── src/
├── amap_api_key.dart # API Key 配置
├── amap_privacy_statement.dart # 隐私声明配置
├── location.dart # 定位功能封装
├── poi.dart # POI 搜索功能
├── amap_tools.dart # 地图工具类
├── amap_utils.dart # 实用工具方法
├── callbacks.dart # 回调函数定义
└── options.dart # 配置选项
🔧 开发环境要求
- Flutter SDK: >= 3.0.0
- Dart SDK: >= 3.1.5 < 4.0.0
- Android: API level 21+
- iOS: iOS 9.0+
- HarmonyOS: API level 12+
📝 配置说明
Android 配置
在 android/app/src/main/AndroidManifest.xml
中添加权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
iOS 配置
在 ios/Runner/Info.plist
中添加位置权限描述:
<key>NSLocationWhenInUseUsageDescription</key>
<string>此应用需要位置权限以提供基于位置的服务</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>此应用需要位置权限以提供基于位置的服务</string>
HarmonyOS 配置
在 ohos/entry/src/main/module.json5
中添加权限声明:
{
"requestPermissions": [
{
"name": "ohos.permission.LOCATION",
"reason": "用于获取地理位置信息"
},
{
"name": "ohos.permission.APPROXIMATELY_LOCATION",
"reason": "用于获取大致位置信息"
},
{
"name": "ohos.permission.INTERNET",
"reason": "用于网络访问"
}
]
}
📄 许可证
本项目基于 MIT 许可证 开源。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📞 联系方式
⭐ 支持
如果这个项目对你有帮助,请给它一个 ⭐️!