我正在尝试基于Json文件中的字符串向我的地图小部件添加标记。但是,我不知道在.addMarker不再应用后,标记物如何工作。谁能解释一下吗?
答案 0 :(得分:2)
Flutter_Google_maps小部件中的markers:
属性现在带有一个Set<Marker>()
。
要添加标记,首先您应该创建一个Set
类型的空Marker
并将其分配给google maps小部件中的markers:
属性。因此,您可以使用Marker()
方法将所需的add()
附加到创建的集合中。最后,您使用setState()
重建窗口小部件并在UI上显示更新的标记集。
示例:
class MapsScreen extends StatefulWidget {
@override
_MapsScreenState createState() => _MapsScreenState();
}
class _MapsScreenState extends State<MapsScreen> {
Completer<GoogleMapController> _mapsController = Completer();
Set<Marker> _myMarkers = Set<Marker>();
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
_myMakers.add(
markerId: MarkerId("current"),
position: LatLng(yourLatitude, yourLongitude),
);
setState((){});
)},
),
body: GoogleMap(
initialCameraPosition: _anyCameraPosition,
markers: _myMarkers,
onMapCreated: (GoogleMapController controller) {
_mapsController.complete(controller);
},
);
);
}
}
您可以选择使用您喜欢的任何状态管理模式。