8

如何更改 GoogleMap 小部件的Google徽标(最初位于左下角)和其他地图按钮(位置、放大/缩小等)的位置?

我还想知道您是否可以禁用/启用它们。

我正在使用google_maps_flutter 包版本^0.5.19

4

4 回答 4

6

我找到了一种解决方法,不是我猜的最佳解决方案,但应该可以

只需向 GoogleMap() 小部件添加填充,根据需要设置底部和左侧值

new GoogleMap(
    padding: EdgeInsets.only(bottom: 100, left: 15), // <--- padding added here
    // rest of parameters
    // ....
)

笔记 !!

如果您从屏幕中心的某个点选择位置,向 GoogleMap() 添加填充应该会影响/更改所选择位置的值。考虑到这一点。

谢谢

于 2019-08-31T05:36:45.987 回答
2

谷歌已经为您简化了这一点,改编自 Rami 答案,您只需执行以下操作即可为您的地图添加填充

      GoogleMap(
        myLocationEnabled: true,
        padding: EdgeInsets.only(bottom: mapBottomPadding, top: 0, right: 0, left: 0),
        myLocationButtonEnabled: true,
        compassEnabled: true,
        mapToolbarEnabled: true,
        mapType: MapType.normal,
        markers: _markers,
        initialCameraPosition: _kLake,
        onMapCreated: (GoogleMapController controller) {
          _controller.complete(controller);
          mapController = controller;
          setState(() {
            mapBottomPadding = 280;
            _goToTheLake();

          });
        },
      ),

地图相机目标会根据应用于地图的左侧、顶部、右侧或底部的填充进行相应调整。

如需进一步阅读,请点击此处

希望这可以帮助。

于 2020-04-10T21:06:12.687 回答
2

显然没有直接/可靠的方法可以做到这一点,即使您可以以某种方式使用 Stack 来覆盖该徽标,您也不应该这样做。

在 Google Playstore 上上传您的应用时,您可能会遇到麻烦。

如果您不关心道德价值观,请阅读以下内容:

9.4 归属。

(a) 通过服务提供给您的内容可能包含 Google、其合作伙伴或 Google 索引内容的其他第三方权利持有人的商号、商标、服务标记、徽标、域名和其他独特的品牌特征。当 Google 提供此归属时,您必须按照通过服务提供的或 Maps API 文档中的说明显示它,并且不得删除或以任何方式更改这些商号、商标、服务标记、徽标、域名和其他独特品牌特征。

https://developers.google.com/maps/terms

谷歌已经提供了广泛的免费和免费增值服务,从字体到……再到……再到 Flutter。想象一下,如果你不是谷歌,如果你发现有人试图滥用你的应用程序的免费服务,而这实际上会让你花钱,你会怎么做。

如果您只想重新定位图标,请在按住 Ctrl 的同时将鼠标悬停在 GoogleMap() 上,然后在文本变为蓝色时右键单击来编辑该包的源代码。将出现一个带有 GoogleMap 小部件源代码的新窗口,您可以在其中检查和编辑如何指定徽标的位置,但我不能保证允许您这样做。

于 2019-08-31T04:58:09.427 回答
1

正如此GitHub 问题(自 2020 年 7 月 22 日开放)所提到的,在为 Google 地图徽标(或其他地图按钮)设置填充时,您必须使用StatefulWidgetand方法。setState()如果不调用setState(),则填充将无法在 Android 上正确应用。这似乎是原生 Android Maps SDK 的一个问题,因为 React Native 的 Google Maps 包中也会出现同样的填充问题。

根据Google Maps Platform 服务条款,您必须始终在您的 Google 地图上显示 Google 徽标,因此您无法在没有解决方法的情况下将其删除。但是,您可以删除 Google 地图上的其他按钮,例如位置和放大/缩小按钮。

请参阅下面的示例,了解 Google 地图徽标上的填充实现,以及删除位置和放大/缩小按钮:

GoogleMap(
    //padding parameter for positioning the Google logo and other map buttons
    padding: EdgeInsets.only(
        bottom: 120,
    ),
    //remove zoom in/out buttons
    zoomControlsEnabled: false,
    //remove location button
    myLocationButtonEnabled: false,
    initialCameraPosition: CameraPosition(
        target: _center,
        zoom: 12.0,
    ),
    onMapCreated: (GoogleMapController controller) {
        //required to apply padding correctly on Android
        setState(() {});
    },
)

要查找有关GoogleMap小部件参数的更多信息,请查看google_maps_flutter 包文档

于 2020-07-22T04:53:06.117 回答