谷歌地图使用 google_maps_flutter 插件显示空白地图

Posted

技术标签:

【中文标题】谷歌地图使用 google_maps_flutter 插件显示空白地图【英文标题】:Google Maps shows blank map using google_maps_flutter plugin 【发布时间】:2019-04-15 21:07:22 【问题描述】:

我正在开发一个使用 google_maps_flutter 插件(版本 0.5.7)来显示地图的应用程序。直到昨天它工作得很好。我没有对我的应用程序进行任何更新,它只是在我今天打开它时停止显示空白地图。 Flutter Doctor 没有显示任何问题,Flutter Analyze 也是如此。该插件似乎部分工作,因为我正在使用 GoogleMap onTap 属性来显示点击位置的坐标,并且它工作得很好(I/flutter (11935): LatLng(25.895589930847475, -80.28307791799307),虽然没有创建标记。

_handleTap(LatLng point) 
  setState(() 
     print(point);
    _markers.add(Marker(
        markerId: MarkerId(point.toString()),
        position: point,
        infoWindow: InfoWindow(
        title: point.toString(),
        ),
    icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueMagenta),
   ));
  );

任何想法,可能会发生什么?此插件是否已报告任何可能导致此问题的问题?

【问题讨论】:

请不要因为使用 android-studio 标签而标记问题:Android Studio 标签应该在您对 IDE 本身有疑问时使用,而不是您在其中编写(或想要编写)的任何代码。请参阅 when is it appropriate to remove an IDE tag、How do I avoid misusing tags? 和 the tagging guide。请改用 [android] 或其他相关标签。 我只是猜测我还没有在颤振上尝试过谷歌地图。可能与地图键api有关。 我也看到了同样的情况。在 ios 上它是白色的屏幕,而在 Android 上是灰色的。我已经仔细检查了我的 api 密钥,所以很确定不是这样。我还在 Google 的 api 控制台中注意到,它确实确认了 iOS 请求,但没有显示任何 Android 请求。 @eimmer 你找到答案了吗? @Anton 我做到了,但遗憾的是我不确定具体问题是什么。我决定从头开始重新开始一个教程,它没有问题。希望我能提供更多帮助。 【参考方案1】:
    登录[谷歌云平台控制台][1]。 单击 项目下拉菜单并选择或创建您要为其创建的项目 想要添加 API 密钥。 点击菜单(左上角汉堡) 按钮并选择 API 和服务 > 凭据。 在凭据页面上,单击创建凭据 > API 密钥。重复这个 创建 2 个密钥的步骤。 在您的 Flutter 项目中,确保 以下文件使用活动 API 密钥: android/app/src/main/AndroidManifest.xml ios/Runner/AppDelegate.swift 点击菜单(左上角汉堡)按钮并选择 APIs & Services > Library 点击 以下各项,然后单击“启用” Android 版地图 SDK iOS 版地图 SDK

    我建议返回到您在第 3 步中创建的 API 密钥,然后将其中的一个限制为 iOS 应用和地图 适用于 iOS 的 SDK 和其他适用于 Android 的 SDK 和适用于 Android 的 Maps SDK。

    [1]:https://cloud.google.com/console/google/maps-apis/overview

【讨论】:

【参考方案2】:

可能是因为模拟器中的连接问题(wifi/internet)

将您网络的 DNS 地址更改为 8.8.8.8(Google 的 DNS)或您偏好的其他地址:

MacOSX:

打开“系统偏好设置” 点击“网络” 选择您的计算机连接的网络 点击“高级” 选择“DNS”,选择“+”按钮,输入“8.8.8.8”(Google 的 DNS),或者如果您更喜欢 OpenDNS,请输入“208.67.222.222” 选择“确定”和“应用”

Windows 和 Linux: https://developers.google.com/speed/public-dns/docs/using

然后关闭模拟器并重新启动它。

【讨论】:

【参考方案3】:

我在 iOS 中确实遇到过类似的问题。确保在谷歌开发者控制台中启用这两个 API。 iOS 版地图和 Android 版地图。可以为每个平台共享或生成密钥。

【讨论】:

以上是关于谷歌地图使用 google_maps_flutter 插件显示空白地图的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:地图依赖使应用程序崩溃

Flutter从谷歌地图获取坐标

使用谷歌地图颤动单击按钮时如何激活位置?

Flutter Android App 在使用谷歌地图时崩溃

如何为 google_maps_flutter 设置缩放级别

如何处理 Flutter 谷歌地图控制器