Flutter地图展示插件simple_google_maps_flutter的使用
Flutter地图展示插件simple_google_maps_flutter的使用
开始使用
在使用此插件之前,请务必检查 simple_platform_view 包,因为simple_platform_view有一些缺点需要提前考虑。
使用
平台支持情况
平台 | 状态 |
---|---|
Android | ✅ |
iOS | ❌ |
下载自定义引擎
simple_platform_view 需要对引擎本身进行修改。因此,在Android上运行时,你需要使用一个修改后的版本的Flutter。
下载自定义的Flutter版本 这里。
解压下载的flutter.zip
文件。
运行以下命令以首次下载自定义引擎工件:
$ path_to_custom_version/flutter/bin/flutter doctor
然后使用它就像正常安装的Flutter一样:
$ path_to_custom_version/flutter/bin/flutter build apk
在pubspec.yaml
文件中添加以下依赖:
dependencies:
google_maps_flutter:
simple_google_maps_flutter:
Android:
将默认的GoogleMapsFlutterPlatform.instance替换为修改后的版本:
import 'package:simple_google_maps_flutter/simple_google_maps_flutter.dart';
[@override](/user/override)
void initState() {
super.initState();
if (Platform.isAndroid) {
SimpleGoogleMapsFlutterAndroid.registerWith();
}
}
如果你在ScrollView中使用Google Map,添加以下代码到你的MaterialApp
中以防止StretchingOverscrollIndicator问题:
import 'package:simple_platform_view/simple_platform_view.dart';
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
// 解决StretchingOverscrollIndicator问题
scrollBehavior: SimplePlatformViewScrollBehavior(),
);
}
其他用法与google_maps_flutter包相同。
iOS:
不支持iOS
示例
下面是示例代码:
import 'package:example/select_screen.dart';
import 'package:flutter/material.dart';
import 'package:simple_platform_view/simple_platform_view.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是你的应用的根。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// 这是你的应用的主题。
//
// 尝试这样做:运行你的应用,你会看到应用有一个蓝色工具栏。然后,不退出应用,
// 将colorScheme中的seedColor改为Colors.green,然后执行热重载(保存更改或在Flutter支持的IDE中点击热重载按钮,或者如果使用命令行启动应用,则按"r")。
//
// 注意计数器并没有重置回零;应用程序状态在重载期间不会丢失。要重置状态,请使用热重启。
//
// 这也适用于代码,而不仅仅是值:大多数代码更改可以通过简单的热重载来测试。
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
// 解决StretchingOverscrollIndicator问题
scrollBehavior: SimplePlatformViewScrollBehavior(),
home: const SelectScreen(),
);
}
}
更多关于Flutter地图展示插件simple_google_maps_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter地图展示插件simple_google_maps_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何使用 simple_google_maps_flutter
插件在 Flutter 应用中展示地图的代码案例。请确保你已经在 pubspec.yaml
文件中添加了该插件的依赖,并且已经运行了 flutter pub get
命令。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 simple_google_maps_flutter
依赖:
dependencies:
flutter:
sdk: flutter
simple_google_maps_flutter: ^x.y.z # 请替换为最新版本号
2. 导入插件
在你的 Dart 文件中导入该插件:
import 'package:flutter/material.dart';
import 'package:simple_google_maps_flutter/simple_google_maps_flutter.dart';
3. 使用插件展示地图
下面是一个完整的 Flutter 应用示例,展示了如何使用 simple_google_maps_flutter
插件来展示一个 Google 地图:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Google Maps Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MapScreen(),
);
}
}
class MapScreen extends StatefulWidget {
@override
_MapScreenState createState() => _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
// API Key from Google Cloud Console
final String apiKey = 'YOUR_GOOGLE_MAPS_API_KEY'; // 请替换为你的Google Maps API Key
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Google Maps Demo'),
),
body: SimpleGoogleMaps(
apiKey: apiKey,
initialPosition: LatLng(37.7749, -122.4194), // 初始位置:旧金山
zoom: 14,
onMapCreated: (controller) {
// 地图创建后的回调,controller可以用来控制地图
print('Map created!');
},
markers: [
Marker(
position: LatLng(37.7749, -122.4194),
infoWindow: InfoWindow(title: 'San Francisco', snippet: 'Golden Gate Bridge'),
),
Marker(
position: LatLng(34.0522, -118.2437),
infoWindow: InfoWindow(title: 'Los Angeles', snippet: 'Hollywood Sign'),
),
],
),
);
}
}
注意事项
- API Key: 确保你已经从 Google Cloud Console 获取了一个有效的 Google Maps API Key,并替换了代码中的
'YOUR_GOOGLE_MAPS_API_KEY'
。 - 权限: 确保你的 API Key 有权限访问 Google Maps 服务,并且你的应用已经启用了相应的 API。
- 依赖版本: 确保你使用的是最新版本的
simple_google_maps_flutter
插件,以避免可能的兼容性问题。
以上代码展示了如何使用 simple_google_maps_flutter
插件在 Flutter 应用中展示一个包含标记的 Google 地图。希望这对你有所帮助!