无法将参数类型List <LatLng>分配给参数类型'LatLng'

时间:2019-12-14 10:32:35

标签: flutter

如何为Flutter定义标记数组,因为position小部件的Marker属性不接受LatLng点列表。我该如何解决?

final List<LatLng> _markerLocations = [
    LatLng(3.082519, 101.592201),
    LatLng(3.083355, 101.589653),
    LatLng(3.08171, 101.587507),
    LatLng(3.082519, 101.592201),
  ];
void _initMarkers() async {
    Marker marker = Marker(
      markerId: MarkerId('loop_route'),
      position: _markerLocations
    );
    setState(() {
      markers.add(_markerLocations);
    });
}
void _onMapCreated(GoogleMapController controller) {
  setState((){
    mapController = controller;
    _initMarkers();
  })
}

1 个答案:

答案 0 :(得分:1)

Marker采用LatLng的实例,因为一个LatLng只能有一个Marker。一个标记只能在地图中的一个位置。

您将需要创建尽可能多的LatLng标记。

您将必须执行以下操作:

_markerLocations.forEach((LatLng latLong){
    markers.add(Marker(
      markerId: MarkerId('loop_route'),
      position: latLong
    ));
  });

通过替换:

 markers.add(_markerLocations);