amap_base 0.1.3+2 copy "amap_base: ^0.1.3+2" to clipboard
amap_base: ^0.1.3+2 copied to clipboard

discontinued
outdated

Fully Functional AMap Flutter Plugin. Based on AndroidView/UiKitView.

高德地图Flutter插件 基于AndroidView和UiKitView #

pub package

[TOC]

安装 #

在你的pubspec.yaml文件的dependencies节点下添加:

amap_base: x.x.x

如果你想要指定某个版本/分支/提交, 那么:

amap_base:
  git:
    url: https://github.com/yohom/amap_base_Flutter.git
    ref: 0.0.1/branch/commit

导入:

import 'package:amap_base/amap_base.dart';

Android端设置key:

<application>
    ...
    <meta-data
        android:name="com.amap.api.v2.apikey"
        android:value="您的Key"/>
</application>

iOS端设置key:

AMap.setKey('您的key'); // 这个方法在Android端无效

iOS端的UiKitView目前还只是preview状态, 默认是不支持的, 需要手动打开开关, 在info.plist文件中新增一行io.Flutter.embedded_views_previewtrue. 参考iOS view embedding support has landed on master

关于高德的Android SDK和iOS SDK #

  • 由于Android和iOS端的实现完全不一样, Android端照抄了Google Map的api设计, 而iOS 端又没有去抄Google Map的设计, 导致需要额外的工作去兼容两个平台的功能. 这个库的目标是尽可能的统一双端的api设置, 采用取各自平台api的并集, 然后在文档中指出针对哪个平台有效的策略来实现api统一.

关于包的大小 #

  • 目前主分支的计划是实现全功能的高德地图, 然后开单独的分支实现高德的单独的功能, 这样包会小一点.
  • 这个库依赖了高德导航库(包含了3dMap库), 以及搜索库.

关于项目结构 #

项目结构按照高德官方网站的开发指南组织. 分为地图, 定位, 导航三大块.

  • me.yohom.amapbase
    • AMapBasePlugin: Flutter插件类
    • common: 通用代码
    • map: 地图功能模块
      • handlers: 单个功能的处理委托对象
        • calculatetool: 地图计算工具
        • createmap: 创建地图
        • draw: 在地图上绘制
        • fetchdata: 获取地图数据
        • interact: 与地图交互
        • routeplan: 出行路线规划
      • model: 地图数据的模型
      • overlay: 覆盖物
      • AMapFactory: AMapView工厂, Flutter的platform view需要
      • MapFunctionRegistry: 地图功能登记处, 所有功能都需要在此处注册.
      • MapMethodHandler: 处理委托对象接口.
    • navi: 导航功能模块(未实现)
    • location: 定位功能模块(未实现)

关于贡献代码 #

  1. handlers包下找到要实现的功能模块包, 比如说要实现显示地图, 那么先找到me.yohom.amapbase/map/handlers/createmap包, 然后在该包下创建新的实现MapMethodHandler接口的委托类.
  2. 实现功能后, 在MapFunctionRegistry类中注册功能.
  3. 在dart增加对应的方法.
  4. 新功能的开发就完成了.

FAQ: #

  1. 为什么定位到非洲去了?
  • 实际上是定位在了经纬度(0, 0)的位置了, 那个位置大致在非洲西部的几内亚湾, 原因是key 设置错了, 建议检查一下key的设置.
  1. 为什么Android端用Flutter运行后奔溃, 但是直接用Android SDK运行成功?
  • 指定项目的编译选项Additional arguments增加--target-platform android-arm.从screen shot 2018-12-06 at 09 36 20这里打开选项对话框.

TODO LIST: #

  • ❌ 创建地图
    • ✅ 显示地图
    • ✅ 显示定位蓝点
    • ✅ 显示室内地图
    • ✅ 切换地图图层
    • ❌ 使用离线地图
    • ✅ 显示英文地图
    • ❌ 自定义地图
  • ❌ 与地图交互
    • ✅ 控件交互
    • ✅ 手势交互
    • ✅ 调用方法交互
    • ❌ 地图截屏功能
  • ❌ 在地图上绘制
    • ✅ 绘制点标记
    • ❌ 绘制折线
    • ❌ 绘制面
    • ❌ 轨迹纠偏
    • ❌ 点平滑移动
    • ❌ 绘制海量点图层
  • ❌ 获取地图数据
    • ✅ 获取POI数据
    • ❌ 获取地址描述数据
    • ❌ 获取行政区划数据
    • ❌ 获取公交数据
    • ❌ 获取天气数据
    • ❌ 获取业务数据(云图功能)
    • ❌ 获取交通态势信息
  • ❌ 出行线路规划
    • ✅ 驾车出行路线规划
    • ❌ 步行出行路线规划
    • ❌ 公交出行路线规划
    • ❌ 骑行出行路线规划
    • ❌ 货车出行路线规划
  • ❌ 地图计算工具
    • ✅ 坐标转换
    • ❌ 距离/面积计算
    • ❌ 距离测量
0
likes
0
pub points
27%
popularity

Publisher

unverified uploader

Fully Functional AMap Flutter Plugin. Based on AndroidView/UiKitView.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on amap_base