【问题标题】:How can i move map under marker like UBER in FLUTTER?如何在 FLUTTER 中像 UBER 这样的标记下移动地图?
【发布时间】:2020-02-02 00:48:07
【问题描述】:

我想移动像 Uber 这样的标记,我在 Android 中找到了一个示例,但我需要在 Flutter 中做,有人可以帮助我吗?

【问题讨论】:

  • 从 onCameraMove 获取位置并在该位置添加具有相同 markerId 的标记
  • @SahdeepSingh 我尝试在中心标记让用户选择坐标:用户移动地图,读取中心坐标,标记移动到它们。但是由于标记重建,我对用户在地图上的每一次移动都有很大的滞后。下面的答案确实解决了我的问题。
  • @EvgenyNozdrev 下面的正确答案很好,但这不是标记,而是地图上的堆叠图标。是的,onCameraMove 非常频繁,添加删除标记的成本很高,您也可以使用 onCameraIdle 代替,只有当用户离开地图时才会触发。

标签: google-maps flutter


【解决方案1】:

如果您使用google_maps_flutter 包,onCameraMove 将始终为您提供地图中心的 lat、lng。所以你可以有一个 Stack 并在地图顶部的中心放置一个像图像一样的标记。

               Stack(children: <Widget>[
                GoogleMap(
                  initialCameraPosition: _initialCamera,
                  onMapCreated: _mapCreated,
                  onCameraMove: (position) {
                    newLocation = position.target;
                  },
                  onCameraIdle: () async {
                    // you can use the captured location here. when the user stops moving the map.
                  },
                ),
               //This is your marker
                Align(
                  alignment: Alignment.center,
                  child: Icon(Icons.place),
                ),
              ])

【讨论】:

    【解决方案2】:
    1. 在当前位置放置标记
    2. 移除标记 onCameraMove 并将图钉图像放置在 Stack 的地图中间
    3. 通过 CameraPosition onCameraIdle 移除 pi​​n 图像并在当前位置放置新标记

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 1970-01-01
      • 2017-01-15
      • 2011-08-02
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多