【问题标题】:clearMarkers() and addMarker() doesn't workclearMarkers() 和 addMarker() 不起作用
【发布时间】:2021-01-25 14:02:36
【问题描述】:

我在教程中发现了一个不再有效的代码。在做了一些研究后,我意识到谷歌地图 api 已被更改,因此代码不再工作。该教程是从 2018 年开始的。你们中的任何人都可以告诉我现在如何编写此代码吗? clearMarkers()addMarker() 带有红色下划线。

代码:

  void initMarker(client) {
    mapController.clearMarkers().then((val) {
      mapController.addMarker(
        Marker(
          position:
              LatLng(client['location'].latitude, client['location'].longitude),
              infoWindow: InfoWindow(title: client['name'])
        ),
      );
    });
  }

【问题讨论】:

    标签: api google-maps flutter dart google-maps-android-api-2


    【解决方案1】:

    首先创建一个标记列表:

    List<Marker> _markers = <Marker>[];
    

    然后填写列表,如下所示:

        //for 1..100
        _markers.add(
          Marker(
            markerId: MarkerId("someId"),
            infoWindow: InfoWindow(title: "Marker Title", snippet: "$snippet"),
            position: LatLng(currentLocation.coordinates[1], currentLocation.coordinates[0]),
    
         )
       );
    

    现在将您的 GoogleMaps 更改为以下内容:

    GoogleMap(
          initialCameraPosition: CameraPosition(
            target: LatLng(38.9647,35.2233),
            zoom: 9.0,
          ),
          mapType: MapType.normal,
          markers: Set<Marker>.of(_markers),
          onMapCreated: (GoogleMapController controller) {
            _controller.complete(controller);
          },
        )
    

    要清除标记,只需使用 setState 清除标记列表

      setState(() {
        _markers.clear();
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多