6月产品上新|Flutter SDK 正式上线,一份Dart 代码,双端跑通定位与地图
6月产品上新|Flutter SDK 正式上线,一份Dart 代码,双端跑通定位与地图
位置服务跨端开发者久等啦!
过去开发者们在 Flutter 里做定位和地图,要么自己用 MethodChannel 手写桥接,容易踩平台差异的坑,要么依赖第三方方案,能力完整度和长期维护都难有保障。
腾讯位置服务正式发布官方 Flutter 插件,定位 SDK 与地图 SDK 现已全面完成 Flutter 适配。开发者只需编写一套 Dart 代码,即可在 Android 与 iOS 双端直接调用原生级能力,无需额外适配。
这不仅大幅降低了 Flutter 开发者的接入门槛,更让开发者能以最小成本获得与原生 SDK 对齐的定位和地图功能。且该插件由腾讯位置服务官方团队持续维护,确保长期稳定更新与技术支持,为您的跨端应用提供可靠的位置服务底座。
🚀 PART 01 · 腾讯位置服务定位 SDK:跨端定位能力一站式打包
定位插件(tencent_location_flutter_plugin)为同一份 Dart 代码提供跨平台的定位、地理围栏、设备朝向、坐标工具等完整能力。
📋 核心能力一览
| 能力 | 说明 | Android | iOS |
|---|---|---|---|
| 连续定位 | 可订阅的位置流,支持设置回调间隔、坐标系、返回等级、逆地址解析等参数 | ✅ | ✅ |
| 单次定位 | 一次性获取当前定位结果,可配置超时时长 | ✅ | ✅ |
| 地理围栏 | 圆形 / 多边形 / 行政区划三种形态,支持进入 / 离开 / 停留事件回调 | ✅ | ✅ |
| 设备朝向 | 订阅式获取真北方向、磁北方向等朝向信息 | - | ✅ |
| 设备状态 | 随连续定位一并产生 GPS / Wi-Fi / 蜂窝 / 定位总开关等状态变化事件 | ✅ | - |
| 前台定位服务 | 让定位在应用进入后台时也能继续运行 | ✅ | - |
| 工具方法 | 坐标系互转、两点距离计算、点是否落在指定圆内等通用工具 | ✅ | ✅ |
| 多实例 | 同一应用内可创建多个定位 / 围栏管理器,事件流互不干扰 | ✅ | ✅ |
💻 一段代码看懂接入
import 'package:tencent_location_flutter_plugin/tencent_location_flutter_plugin.dart';
Future<void> main() async {
// ① 隐私合规同意
await TencentLocationSDK.setPrivacyPolicyAgreement(true);
// ② 初始化(双端各自的 Key)
await TencentLocationSDK.init(
androidApiKey: 'YOUR_ANDROID_API_KEY',
iosApiKey: 'YOUR_IOS_API_KEY',
);
// ③ 发起一次单次定位
final manager = TencentLocationManager();
final loc = await manager.startSingleLocation(
TencentLocationRequest.create()..setRequestLevel(RequestLevel.adminArea),
);
print('当前位置:${loc.latitude}, ${loc.longitude}');
}
🗺️ PART 02 · 腾讯位置服务地图 SDK:核心功能对齐原生
地图插件(flutter_tencent_map)首期交付的地图核心功能,覆盖地图展示、交互、覆盖物三大板块:
📋 核心功能一览
| 核心功能 | 说明 |
|---|---|
| 🗺️ 地图基础 | 创建和显示地图、地图类型切换(标准 / 卫星)、自定义地图样式(个性化地图)、显示定位、实时路况、3D 建筑物、底图标注控制、隐私合规、Logo 位置控制 |
| 👆 地图交互 | 手势控制(缩放 / 滑动 / 旋转 / 倾斜)点击事件(单击 / 长按 / POI 点击)、UI 控件(指南针 / 比例尺)、缩放范围限制、显示区域限制、相机视角控制(含动画)、坐标转换(屏幕 ↔ 经纬度)、地图截图 |
| 📍 覆盖物 | 点标记 Marker / InfoWindow、折线 Polyline(折线、虚线、纹理线等)、多边形 Polygon(简单多边形,带洞多边形,纹理边框等) |
✨ PART 03 · 腾讯位置服务Flutter插件亮点
腾讯位置服务Flutter插件不是简单地把原生 API「翻译」一遍,而是围绕 Flutter 的声明式范式做了系统性的工程设计。
亮点 1 · 接入快
双端零配置接入,开箱即用
无论 Android 还是 iOS 都无需手动配 SDK 依赖、无需改原生工程文件,双端统一零配置,把接入成本压到最低。
- Android:工具包已发布至 Maven 中央仓库,构建工具自动拉取,无需手动配置
- iOS:依赖声明文件自动处理,执行依赖安装即用
- Key 与隐私合规:统一在 Dart 层传入
亮点 2 · 代码省
声明式 API,贴合 Flutter 范式
覆盖物(点标记 / 折线 / 多边形 / 圆形)采用声明式管理,只需描述"想要什么状态",插件自动对比差异、只同步变化部分,状态清晰、性能更好、代码更简洁。
同时数据模型均为不可变设计,契合 Flutter 习惯。
亮点 3 · 走得远
Compat分层架构,从容应对多版本
用户设备上的地图 SDK 版本可能不一样,而插件则是以最低版本为编译基准(Android 5.9.0 / iOS 5.7.7),通过 Compat 分层 + 启动时能力检测缓存兼容到最新版:
技术架构:
业务代码 → XxxCompat(统一接口,按版本分支) → SdkCompat(启动时检测一次并缓存) → TencentMap SDK(5.9.0 ~ 最新版)检测只在启动时做一次,运行时走纯 if/else,零反射开销;新增差异点只需改 Compat 文件,不污染业务代码。
亮点 4 · 适配准
渲染模式自动选择,用户可选
不必纠结 Android 的两种渲染方式怎么选,插件默认自动按系统版本为你选择最优模式,同时也支持强制指定——既兼顾性能与兼容性,又把选择权交回开发者手中,灵活适配各类机型与场景。
enum AndroidViewMode { auto, surfaceView, textureView }
亮点 5 · 跑得稳
初始化时序内部封装,平台细节双端一致
地图 SDK 初始化步骤有严格顺序要求,顺序错误会导致白屏或崩溃等问题。
从隐私合规 ➡️ SDK启动 ➡️ API key ➡️ 创建地图,插件将正确的初始化时序封装在内部,开发者无需操心。同时坐标系、覆盖物渲染等双端差异也一并细致封装与对齐,同一份代码彻底双端一致。
📊 PART 04 · 接入前后,开发者省了什么
告别6件烦心事,Flutter插件提高开发者生产力
| 你以前要操心的 | 用了这套插件后 |
|---|---|
| ❌ 手写 MethodChannel 逐个桥接原生 API | ✅ 官方封装好,直接调 Dart API |
| ❌ Android 配依赖、配仓库、改 Manifest | ✅ 双端零配置,添加依赖即用 |
| ❌ iOS 改 AppDelegate 初始化 SDK | ✅ Key 与隐私合规统一 Dart 层传入 |
| ❌ 自己处理 Android / iOS API 差异 | ✅ 上层代码双端一致,差异内部消化 |
| ❌ 命令式增删覆盖物、手动管状态 | ✅ 声明式 + 增量更新,状态可预测 |
| ❌ 担心插件长期维护与更新节奏 | ✅ 官方出品,持续迭代有保障 |
💡 一句话总结:你写业务,跨端的复杂度交给官方插件。
您在使用过程中有任何问题,
都可前往腾讯位置服务官网「提交工单」。
您还可以点击下方小程序,
一键成为腾讯位置服务开发者!
更多推荐


所有评论(0)