csp_amap_flutter_base 1.0.1
csp_amap_flutter_base: ^1.0.1 copied to clipboard
AMap flutter plugin, base dependency library for integrating AMapSDK in applications. Provides unified Flutter interface encapsulation for location, POI search, API key management, and privacy stateme [...]
csp_amap_flutter_base #
高德地图 Flutter 插件基础依赖库,为 Flutter 应用集成高德地图 SDK 提供统一的接口封装。
📱 功能特性 #
- 🗺️ 定位数据模型 - 提供定位信息数据结构(
AMapLocation、LatLng、LatLngBounds) - 🔍 POI 数据模型 - 提供 POI 数据结构(
AMapPoi) - 🔑 API Key 管理 - 统一的 API Key 配置(
AMapApiKey) - 🔒 隐私声明 - 符合隐私政策要求的声明配置(
AMapPrivacyStatement) - 🛠️ 工具类 - 提供常用的地图工具方法(
AMapTools、AMapUtil) - 📱 跨平台 - 数据模型与工具类同时适配 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';
📖 使用方法 #
本库是基础依赖库,仅提供与高德地图相关的数据模型与工具方法,供上层插件或业务层调用。定位、POI 搜索等能力由集成原生高德 SDK 的上层插件提供。
1. API Key 配置 #
// 构造 API Key 配置
const key = AMapApiKey(
androidKey: 'your_android_api_key',
iosKey: 'your_ios_api_key',
ohosKey: 'your_harmonyos_api_key',
);
// 序列化后传递给原生端
final map = key.toMap();
2. 隐私声明配置 #
// 构造隐私声明配置
const statement = AMapPrivacyStatement(
hasContains: true,
hasShow: true,
hasAgree: true,
);
final map = statement.toMap();
3. 定位数据模型 #
// 从原生端反序列化定位信息
final location = AMapLocation.fromMap(json);
print('纬度: ${location?.latLng.latitude}');
print('经度: ${location?.latLng.longitude}');
4. POI 数据模型 #
// 从原生端反序列化 POI 信息
final poi = AMapPoi.fromJson(json);
print('POI名称: ${poi?.name}');
print('POI位置: ${poi?.latLng}');
5. 地图工具 #
// 计算两个经纬度之间的距离(米)
final distance = AMapTools.distanceBetween(pointA, pointB);
// 判断坐标点是否在多边形内
final inside = AMapTools.latLngIsInPolygon(point, polygonPoints);
// 计算多边形面积
final area = AMapTools.calculateArea(polygonPoints);
📁 项目结构 #
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!
📞 联系方式 #
⭐ 支持 #
如果这个项目对你有帮助,请给它一个 ⭐️!