如何为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();
})
}
答案 0 :(得分:1)
Marker
采用LatLng
的实例,因为一个LatLng
只能有一个Marker
。一个标记只能在地图中的一个位置。
您将需要创建尽可能多的LatLng
标记。
您将必须执行以下操作:
_markerLocations.forEach((LatLng latLong){
markers.add(Marker(
markerId: MarkerId('loop_route'),
position: latLong
));
});
通过替换:
markers.add(_markerLocations);