csp_amap_flutter_base

Pub Version License

高德地图 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!

📞 联系方式

⭐ 支持

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