【问题标题】:Flutter: Google Maps. How can I pass both of these marker types?颤振:谷歌地图。如何通过这两种标记类型?
【发布时间】:2020-12-09 19:07:42
【问题描述】:

我正在创建两种标记类型。一个来自 Bloc 并通过消费者,另一个来自我的主要班级。如何设置标记:同时接受 Provmap.markers 和 Set.of(markers.values)?谷歌地图代码如下:

        body: Stack(children: <Widget>[
          SizedBox(
              width: MediaQuery.of(context)
                  .size
                  .width, // or use fixed size like 200
              height: MediaQuery.of(context).size.height,
              child:
                  Consumer<ProviderMaps>(builder: (context, Provmap, widget) {
                return GoogleMap(
                    myLocationEnabled: true,
                    compassEnabled: true,
                    mapToolbarEnabled: true,
                    zoomControlsEnabled: true,
                    zoomGesturesEnabled: true,
                    onCameraMove: _onCameraMove,
                    onLongPress: _addMarkerLongPressed,
                    myLocationButtonEnabled: false,
                    mapType: maptype,
                    onTap: Provmap.addMarker,


//                    markers: Provmap.markers,  ///cant pass both... 
                      markers: Set<Marker>.of(markers.values),

                    
                    circles: Set<Circle>.of(circles.values),
                    polylines: Provmap.polyline,
                    polygons: Provmap.polygon,
                    initialCameraPosition:
                        CameraPosition(target: LatLng(lat, lng), zoom: 10.0),
                    onMapCreated: (GoogleMapController controller) {
                      mapController = controller;
                      _controller.complete(controller);
                      isMapCreated = true;
                      changeMapMode();
                      changeMapType();
                      setState(() {});
                      Provmap.onCreated;
                    });
              })),

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    如果markers.values 不是Set 则设置为toSet() 喜欢markers.values.toSet()。 并在Set 中使用union()

    就像markers.values.toSet().union(Provmap.markers)

    并且Provmap.markers 也应该是Set。因为 union() 采用 Set 类型作为它的参数。

    【讨论】:

    • 你帮我省了很多麻烦。非常感谢...你有小费罐吗?
    • 对不起,我无法理解“有一个小费罐”。因为我的英语水平不好...
    • 没关系。在美国,我们喜欢给人们钱(小费)以表示感谢或提供优质服务。尽管我不确定这是否违反他们的条款,但我已经看到堆栈溢出的提示罐。小费罐的替代名称包括“给我买咖啡”或“给我买饮料”按钮。如果你有一个,我肯定会在我上一期的问题上为你提供帮助。再次感谢
    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2020-07-19
    • 2019-11-19
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多