csp_amap_flutter_base 1.0.1 copy "csp_amap_flutter_base: ^1.0.1" to clipboard
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 #

Pub Version License

高德地图 Flutter 插件基础依赖库,为 Flutter 应用集成高德地图 SDK 提供统一的接口封装。

📱 功能特性 #

  • 🗺️ 定位数据模型 - 提供定位信息数据结构(AMapLocationLatLngLatLngBounds
  • 🔍 POI 数据模型 - 提供 POI 数据结构(AMapPoi
  • 🔑 API Key 管理 - 统一的 API Key 配置(AMapApiKey
  • 🔒 隐私声明 - 符合隐私政策要求的声明配置(AMapPrivacyStatement
  • 🛠️ 工具类 - 提供常用的地图工具方法(AMapToolsAMapUtil
  • 📱 跨平台 - 数据模型与工具类同时适配 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!

📞 联系方式 #

⭐ 支持 #

如果这个项目对你有帮助,请给它一个 ⭐️!

0
likes
135
points
170
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

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 statement configuration.

Repository
View/report issues

Topics

#amap #location #poi #flutter #plugin

License

Apache-2.0 (license)

Dependencies

flutter

More

Packages that depend on csp_amap_flutter_base