Google maps api 3 如何在初次单击标记后使用带颤振的谷歌地图更新InfoWindowText?

Google maps api 3 如何在初次单击标记后使用带颤振的谷歌地图更新InfoWindowText?,google-maps-api-3,flutter,infowindow,Google Maps Api 3,Flutter,Infowindow,用户在android设备上的Flitter应用程序上点击谷歌地图上的标记 如预期,信息窗口出现 用户点击信息窗口,什么也没发生 预计会看到标题和剪报更新 我尝试了多种版本和代码 mapController.onInfoWindowTapped.add((marker) { _launchURL(data[i]["urlmember"]); // options print(marker.id.toString()); print(d

用户在android设备上的Flitter应用程序上点击谷歌地图上的标记

如预期,信息窗口出现

用户点击信息窗口,什么也没发生

预计会看到标题和剪报更新

我尝试了多种版本和代码

mapController.onInfoWindowTapped.add((marker) {
        _launchURL(data[i]["urlmember"]);
        // options
        print(marker.id.toString());
        print(data[i]["urlmember"]);
        MarkerOptions( infoWindowText: InfoWindowText("counseling","find us on second service"));
);

预期的结果是infowindow显示新标题并剪掉

下面的代码片段位于文件“place_marker.dart”中flift Google Maps包()中的示例应用程序中:

void _updateSelectedMarker(MarkerOptions changes) {
    controller.updateMarker(_selectedMarker, changes);
  }


  void _onMarkerTapped(Marker marker) {
    if (_selectedMarker != null) {
      _updateSelectedMarker(
        const MarkerOptions(icon: BitmapDescriptor.defaultMarker),
      );
    }
    setState(() {
      _selectedMarker = marker;
    });
    _updateSelectedMarker(
      MarkerOptions(
        icon: BitmapDescriptor.defaultMarkerWithHue(
          BitmapDescriptor.hueGreen,
        ),
      ),
    );
  }
我相信,按照当前的设置方式,您可以单击与预先存在的标记关联的信息窗口,并触发创建另一个没有“位置”的标记(即标记对象所需的LatLng值),但具有信息窗口文本属性。这就解释了为什么当你点击信息窗口时什么也没有发生;它本质上是创建一个标记,并将其放置在任何地方;这意味着也没有任何地方可以显示相应的infoWindow文本


我相信您希望实现的逻辑是:当用户单击infoWindow时,它应该触发对已经存在的标记的更新。为了实现这一点,除了使用OnInfo WindowTapped而不是onMarkerTapped之外,您可以实现与我上面共享的代码片段类似的东西

下面的代码片段位于文件“place_marker.dart”中flift Google Maps包()中的示例应用程序中:

void _updateSelectedMarker(MarkerOptions changes) {
    controller.updateMarker(_selectedMarker, changes);
  }


  void _onMarkerTapped(Marker marker) {
    if (_selectedMarker != null) {
      _updateSelectedMarker(
        const MarkerOptions(icon: BitmapDescriptor.defaultMarker),
      );
    }
    setState(() {
      _selectedMarker = marker;
    });
    _updateSelectedMarker(
      MarkerOptions(
        icon: BitmapDescriptor.defaultMarkerWithHue(
          BitmapDescriptor.hueGreen,
        ),
      ),
    );
  }
我相信,按照当前的设置方式,您可以单击与预先存在的标记关联的信息窗口,并触发创建另一个没有“位置”的标记(即标记对象所需的LatLng值),但具有信息窗口文本属性。这就解释了为什么当你点击信息窗口时什么也没有发生;它本质上是创建一个标记,并将其放置在任何地方;这意味着也没有任何地方可以显示相应的infoWindow文本

我相信您希望实现的逻辑是:当用户单击infoWindow时,它应该触发对已经存在的标记的更新。为了实现这一点,除了使用OnInfo WindowTapped而不是onMarkerTapped之外,您可以实现与我上面共享的代码片段类似的东西