【问题标题】:[[google_maps_flutter]] How to define that a specific marker will be displayed above all other markers[[google_maps_flutter]] 如何定义特定标记将显示在所有其他标记之上
【发布时间】:2022-11-10 12:21:24
【问题描述】:

我的应用程序显示地图和标记,它工作正常。

但是,我希望一个特定的标记(我以编程方式选择)将显示在其他标记之上,并且很容易找到。

它是由标记 Set 中的顺序定义的绘制顺序吗?

              markers: Set.from(markers),

我通过删除更改了顺序并添加了特定的标记,它不影响

在下面的示例中,我看到了标记 #6,我希望看到后面的标记 #1

我能做些什么 ?

【问题讨论】:

    标签: flutter google-maps google-maps-markers google-maps-flutter


    【解决方案1】:

    我找到了两个选项的解决方案

    1. 创建一个新的标记列表。

      除了具有可见 = 假的特定选项之外的所有内容。 具体可见=真。

      在此选项中,应用程序将仅显示特定的

            Future<void> setVisible(String  _eMail, bool _visible) async {
            final Marker marker = markers.where((element) => element.markerId == MarkerId(_eMail)).first;
              if (_visible != marker.visible) {
                markersVisible.add(marker.copyWith(visibleParam: !marker.visible,));
              } else {
                markersVisible.add(marker.copyWith(visibleParam: marker.visible,));
              }
        }
      
      1. 使用阿尔法。

      除特定 Alpha=0.1 外的所有内容

      具体的一个Alpha=1

      并将特定的添加到最后的标记列表中。

        Future<void> setAlpha(String  _eMail, double _alpha) async {
           final Marker marker = markers.where((element) => element.markerId == MarkerId(_eMail)).first;
             markersVisible.add(marker.copyWith(alphaParam:_alpha ));
      

      }

      创建新标记列表后,更新显示

          setState(() {
             markers = markersVisible;
             markersVisible = [];})
      

    【讨论】:

      【解决方案2】:

      2个多小时后我的解决方案。

      我认为这很困难,但很容易。 :)

      为您的模型添加一个 zIndex 属性,并将默认 zIndex 设置为 0.5,将您想要高于所有其他标记的 zIndex 设置为 1.0。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-14
        • 2013-12-19
        • 2011-11-02
        • 1970-01-01
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        相关资源
        最近更新 更多