Flutter如何集成mapbox地图
在Flutter项目中如何集成Mapbox地图?需要哪些依赖和配置步骤?能否提供一个详细的实现示例,包括API密钥的配置和基本地图功能的调用?
2 回复
在 Flutter 中集成 Mapbox 地图,推荐使用官方 mapbox_gl 插件。以下是详细步骤:
1. 添加依赖
在 pubspec.yaml 中添加:
dependencies:
mapbox_gl: ^1.0.0
运行 flutter pub get 安装。
2. 获取 Mapbox Access Token
- 访问 Mapbox 官网 注册账号
- 在账户页面创建新的
access token - 记下生成的 token
3. 配置权限
Android (android/app/src/main/AndroidManifest.xml):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
iOS (ios/Runner/Info.plist):
<key>NSLocationWhenInUseUsageDescription</key>
<string>需要位置权限显示地图</string>
4. 平台配置
Android (android/app/src/main/AndroidManifest.xml):
<meta-data
android:name="com.mapbox.token"
android:value="YOUR_MAPBOX_ACCESS_TOKEN" />
iOS (ios/Runner/Info.plist):
<key>MGLMapboxAccessToken</key>
<string>YOUR_MAPBOX_ACCESS_TOKEN</string>
5. 基本使用示例
import 'package:flutter/material.dart';
import 'package:mapbox_gl/mapbox_gl.dart';
class MapboxScreen extends StatefulWidget {
@override
_MapboxScreenState createState() => _MapboxScreenState();
}
class _MapboxScreenState extends State<MapboxScreen> {
MapboxMapController? mapController;
@override
Widget build(BuildContext context) {
return Scaffold(
body: MapboxMap(
accessToken: "YOUR_ACCESS_TOKEN", // 也可在平台配置中设置
onMapCreated: (controller) {
mapController = controller;
},
initialCameraPosition: CameraPosition(
target: LatLng(37.7749, -122.4194), // 旧金山坐标
zoom: 11.0,
),
),
);
}
}
主要功能
- 添加标记:
mapController.addSymbol() - 绘制图形:
mapController.addLine() - 移动视角:
mapController.animateCamera() - 监听事件:
onMapClick等回调
注意事项
- 确保 token 正确且未过期
- iOS 需在
Podfile中指定 Mapbox 版本 - 真机测试位置权限功能
这样就完成了 Mapbox 地图的基础集成。如需更多功能,参考 mapbox_gl 插件文档。


