我是初学者。我的项目有小问题。我的项目只是在Google地图上绘制制造商。
这是绘制地图的代码的一部分
child: GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition: const CameraPosition(
target: LatLng(-33.852, 151.211),
zoom: 2.0,
),
markers: Set<Marker>.of(markers.values),
// __addmarker(),
),
我创建了一个void _addmarker()
和一个添加标记的按钮。像这样
//void _addmarker()
Marker marker = Marker(
markerId: markerId,
position: LatLng(
11.052992, 106.681612,
),
按钮代码
FlatButton(
child: const Text('add'),
onPressed: _addmarker,
),
这是指我onPressed
时,地图将在void _addmarker()
上用Lat,Lng绘制标记
没关系,但现在我想在地图上绘制标记,但无需按按钮。 我该怎么办?
答案 0 :(得分:0)
那么现在您要使用按钮和功能添加标记,并且想要不按按钮添加标记吗?
您可以在状态窗口小部件上创建标记集。
Set<Marker> markers = Set();
然后您可以在构建方法中填充该标记集
markers.addAll([
Marker(
markerId: MarkerId('value'),
position: LatLng(37.416780, -122.077430)),
Marker(
markerId: MarkerId('value2'),
position: LatLng(37.416000, -122.077000)),
]);
Set类也有各种构造方法。您可以只使用一个,而不必添加它们。 Set class 然后,您可以将填充的设置传递给Google Maps小部件。
child: GoogleMap(
onMapCreated: _onMapCreated,
myLocationEnabled: true,
initialCameraPosition:
CameraPosition(target: LatLng(0.0, 0.0)),
markers: markers,
))),
答案 1 :(得分:0)
您可以创建Set of markers函数,如下所示:
Future<Set<Marker>> myMarkers() async {
List<Marker> mMarkers = [];
mMarkers.add(
Marker(
markerId: MarkerId('marker1'),
position: LatLng(15.392567, 44.278188),
),
);
mMarkers.add(
Marker(
markerId: MarkerId('marker1'),
position: LatLng(15.392029, 44.278113),
),
);
return mMarkers.toSet();
}
,您可以像这样在FutureBuilder
小部件中使用此功能:
FutureBuilder(
future: myMarkers(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
return GoogleMap(
mapType: MapType.normal,
initialCameraPosition: _kGooglePlex,
markers: snapshot.data,
);
},
),
```