flutter_amap_base

Last updated:

0 purchases

flutter_amap_base Image
flutter_amap_base Images
Add to Cart

Description:

flutter amap base

高德地图Flutter插件 基于AndroidView和UiKitView #
[TOC]
功能 #
包括 地图、导航、查询、定位
copied to clipboard
资源 #
android 引入最新资源包
implementation 'com.amap.api:navi-3dmap:9.8.2_3dmap9.8.2'
implementation 'com.amap.api:search:9.7.0'
ios 自动引入最新版本
- AMapFoundation (1.8.2)
- AMapLocation (2.10.0):
- AMapFoundation (>= 1.8.0)
- AMapNavi (9.8.0):
- AMapFoundation (>= 1.8.2)
- AMapSearch (9.7.0):
- AMapFoundation (>= 1.8.0)
copied to clipboard
Android项目默认集成了androidx
使用方法:
amap_base:
git:
url: http://code.tengfeiyc.com/Liyadong/amap_base.git
path: base

copied to clipboard
导入:
import 'package:flutter_amap_base/amap_base.dart';
copied to clipboard
Android端设置key:
<application>
...
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="您的Key"/>
</application>
copied to clipboard
iOS端设置key:
await AMap.init('您的key'); // 这个方法在Android端无效
copied to clipboard
iOS端的UiKitView目前还只是preview状态, 默认是不支持的, 需要手动打开开关, 在info.plist文件中新增一行io.flutter.embedded_views_preview为true. 参考iOS view embedding support has landed on master
关于高德的Android SDK和iOS SDK #

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

关于包的大小 #

目前已经按照高德提供的各个子包, 分出了4个分支(2d地图没有支持计划).

feature/map分支依赖了高德3DMap库.
feature/location分支依赖了高德Location库.
feature/navi分支依赖了高德Navi库(Navi库包含了3DMap库, 不要重复引用Navi库和3DMap库!).
feature/search分支依赖了高德Search库.



关于Swift项目 #

Swift项目需要注释掉Podfile中的use_framework!. 尝试了在podspec中添加s.static_framework = true, 但是会造成找不到pod里的头文件. 如果有更好的解决方案, 请告知我.

关于项目结构 #
项目结构按照高德官方的4个子包(不包括2D地图)组织. 分为地图, 定位, 导航, 搜索四大块.
|-- me.yohom.amapbase
|-- `AMapBasePlugin`: Flutter插件类
|-- `FunctionRegistry`: 功能登记处, 所有功能都需要在此处注册.
|-- `IMapMethodHandler`: **处理委托对象**接口.
|-- common: 通用代码
|-- map: 地图功能模块
|-- MapHandlers
|-- MapModels: 数据模型
|-- `AMapFactory`: AMapView工厂, Flutter的platform view需要
|-- navi: 导航功能模块
|-- NaviHandlers
|-- NaviModels: 数据模型
|-- search: 搜索功能模块
|-- SearchHandlers
|-- SearchModels: 数据模型
|-- location: 定位功能模块
|-- LocationHandlers
|-- LocationModels: 数据模型
copied to clipboard
FAQ: #

为什么定位到非洲去了?


实际上是定位在了经纬度(0, 0)的位置了, 那个位置大致在非洲西部的几内亚湾, 原因是key
设置错了, 建议检查一下key的设置.


为什么Android端用Flutter运行后奔溃, 但是直接用Android SDK运行成功?


指定项目的编译选项Additional arguments增加--target-platform android-arm.从这里打开选项对话框. VS Code配置方式.

TODO LIST: #

地图

✅ 创建地图

✅ 显示地图
✅ 显示定位蓝点
✅ 显示室内地图
✅ 切换地图图层
✅ 使用离线地图
✅ 显示英文地图
✅ 自定义地图


✅ 与地图交互

✅ 控件交互
✅ 手势交互
✅ 调用方法交互
✅ 地图截屏功能


❌ 在地图上绘制

✅ 绘制点标记
✅ 绘制折线
❌ 绘制面
❌ 轨迹纠偏
❌ 点平滑移动
❌ 绘制海量点图层


✅ 地图计算工具

✅ 坐标转换
✅ 距离/面积计算
✅ 距离测量




搜索

❌ 获取地图数据

✅ 获取POI数据
✅ 获取地址描述数据
❌ 获取行政区划数据
❌ 获取公交数据
❌ 获取天气数据
❌ 获取业务数据(云图功能)
❌ 获取交通态势信息


❌ 出行线路规划

✅ 驾车出行路线规划
❌ 步行出行路线规划
❌ 公交出行路线规划
❌ 骑行出行路线规划
❌ 货车出行路线规划




导航

✅ 导航组件

✅ 使用导航组件


❌ 出行路线规划

❌ 驾车路线规划
❌ 货车路线规划
❌ 步行路线规划
❌ 骑行路线规划


❌ 在地图上导航

❌ 实时导航
❌ 模拟导航
❌ 智能巡航
❌ 传入外部GPS数据
❌ 导航UI定制化


❌ HUD导航模式

❌ HUD导航


❌ 获取导航数据

❌ 导航数据


❌ 语音播报

❌ 语音合成




定位

✅ 获取位置

✅ 获取定位数据


❌ 辅助功能

❌ 地理围栏
❌ 坐标转换与位置判断

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.