第一次谷歌地图颤动,加载完美,但当热重启时,它进入平台异常
google_maps_flutter:^0.5.21+15
Github [google_maps_flutter] 尝试创建已创建的平台视图 #45695
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create an already created platform view, view id: 0
Run Code Online (Sandbox Code Playgroud)
颤振医生 -v
[?] Flutter (Channel stable, v1.12.13+hotfix.5, on Linux, locale en_IN)
• Flutter version 1.12.13+hotfix.5 at /home/asus/Documents/Flutter_SDK/flutter
• Framework revision 27321ebbad (2 weeks ago), 2019-12-10 18:15:01 -0800
• Engine revision 2994f7e1e6
• Dart version 2.7.0
[?] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /home/asus/Android/Sdk
• Android NDK location not configured …
Run Code Online (Sandbox Code Playgroud) 虽然 @MrUpsidedown 在评论部分提供了一些相关问题,但他们都没有真正回答我在这里试图强调的部分:如何安全地提供 API 密钥?
\n在阅读了链接问题中的所有答案后,我倾向于自己写一个答案。
\n我是一名非常新的 Flutter 开发人员,尝试将 Google 地图集成到演示应用程序中。
\n为了节省时间,我决定尝试我能找到的最流行的 Google 地图 Widget 库,即google_maps_flutter
. 该库的简洁文档显示了 Android 和 iOS 使用示例,并且都说明了 API 密钥是内联提供的,作为代码库的一部分:
import UIKit\nimport Flutter\nimport GoogleMaps\n\n@UIApplicationMain\n@objc class AppDelegate: FlutterAppDelegate {\n override func application(\n _ application: UIApplication,\n didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?\n ) -> Bool {\n GMSServices.provideAPIKey("YOUR KEY HERE") // <------------------------------------ O--\xd0\xbf\xd0\xbf\n GeneratedPluginRegistrant.register(with: self)\n return super.application(application, didFinishLaunchingWithOptions: launchOptions)\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n<manifest ...\n <application ...\n …
Run Code Online (Sandbox Code Playgroud) 我遇到了以下问题:我的 Flutter 应用程序使用 GoogleMap。地图最初加载得很好。但是,如果我将应用程序置于后台并稍后恢复,则地图将保持空白。Google 徽标仍然显示,就像未指定 API 密钥时发生的情况一样。我的多边形叠加层也没有显示。
该行为不能可靠地重现。有时,应用程序在后台运行数小时后地图加载良好,有时几分钟后地图是空白的。到目前为止,我只在 Android 上看到过这种行为。
没有指示错误的特定日志输出。
任何想法如何解决/解决这个问题?
我在这里提交了一个截图问题:https : //github.com/flutter/flutter/issues/40284
编辑 1: 我能够使用 GoogleMap 作为根小部件重现它,并且没有任何多边形/特征叠加。此外,我发现在某个点疯狂放大会“重新激活”地图(突然地图再次变得可见)。这可能是底层 Android Google Maps SDK 的已知问题吗?
编辑 2: 我发现地图仍在反应(例如点击/手势侦听器仍然触发)。此外,地图并不是真的空的,它只是变得半透明,所以屏幕会显示地图后面的任何小部件。
android google-maps google-maps-android-api-2 flutter google-maps-flutter
Flutter 地图中心按钮不起作用
依赖版本 = google_maps_flutter: ^2.1.6
实现代码
Future<void> _goToTheLake() async {
LatLng lat = LatLng(ctrl.getLat().value, ctrl.getLang().value);
print(lat);
final GoogleMapController controller = await _controller.future;
controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(target: lat, zoom: 15.0)));
setState(() {});
Run Code Online (Sandbox Code Playgroud)
}
E/flutter (15144): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: MissingPluginException(No implementation found for method camera#animate on channel plugins.flutter.io/google_maps_0)
E/flutter (15144): #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:165:7)
E/flutter (15144): <asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)
如果有人有解决方案,请发表评论。
我正在探索 flutter-web 并想在其中添加谷歌地图。虽然,我在 flutter-app 中使用 google_maps_flutter 使用了谷歌地图,但这适用于 Android 和 iOS。
当我们点击标记时,是否可以删除右下角的谷歌地图导航按钮?
我试过这个
Marker(
consumeTapEvents: true,
onTap: () {
print("marker clicked");
},
infoWindow: InfoWindow(
title: "title",
snippet: "snippet",
onTap: () {
markerTap();
}),
)
Run Code Online (Sandbox Code Playgroud)
它有效,但我遇到了一个新问题,即单击时不会在标记上打开信息窗口。有什么建议吗?
如何更改GoogleMap 小部件的Google徽标(最初位于左下角)和其他地图按钮(位置、放大/缩小等)的位置?
我还想知道您是否可以禁用/启用它们。
我正在使用google_maps_flutter 包版本^0.5.19
。
我想在 中显示脉冲动画标记google_maps_flutter
。
有什么方法可以像 Flutter 中的这个(下面)标记一样吗?
我能够这样做(如下):
为了便于理解我能够实现什么,请检查我一步步描述的github 存储库。
如果有任何方法可以在 google_maps_flutter 中显示动画标记请帮助我。
谢谢。
google-maps-markers flutter flutter-animation google-maps-flutter
我试图获取地图旋转(方位),但无法使用地图控制器找到它。
当前使用 google_maps_flutter: ^1.1.1 和 flutter: 1.22
我正在开发一个 flutter 应用程序,该应用程序应该有一个适用于网络和移动设备的通用代码库。
我的应用程序将有一个谷歌地图,据我所知,没有一个包可以满足所有平台。
google_maps_flutter - seems to work only for mobile (IOS / Android)
google_maps_flutter_web - seems to work only for web
Run Code Online (Sandbox Code Playgroud)
因此,很可能我必须使用这些单独的包创建两个单独的 MapWidget,一个用于网络,一个用于移动设备。
对于移动设备:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapSample extends StatefulWidget {
MapSample({Key? key}) : super(key: key);
@override
State<MapSample> createState() => MapSampleState();
}
class MapSampleState extends State<MapSample> {
final Completer<GoogleMapController> _controller = Completer();
static const CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
);
@override
Widget build(BuildContext context) {
return GoogleMap(
mapType: MapType.hybrid,
initialCameraPosition: …
Run Code Online (Sandbox Code Playgroud)