Google maps 在谷歌地图上绘制标记

Google maps 在谷歌地图上绘制标记,google-maps,flutter,Google Maps,Flutter,我是初学者。我的项目有点小问题。我的项目只是在谷歌地图上画制造商 这是绘制地图代码的一部分 child: GoogleMap( onMapCreated: _onMapCreated, initialCameraPosition: const CameraPosition( target: LatLng(-33.852, 151.211), zoom: 2.0,

我是初学者。我的项目有点小问题。我的项目只是在谷歌地图上画制造商

这是绘制地图代码的一部分

child: GoogleMap(
              onMapCreated: _onMapCreated,
              initialCameraPosition: const CameraPosition(
                target: LatLng(-33.852, 151.211),
                zoom: 2.0,
              ),
              markers: Set<Marker>.of(markers.values),
              // __addmarker(),
            ),
按钮代码

FlatButton(
  child: const Text('add'),
  onPressed: _addmarker,
),
这意味着当我按下按钮时,地图将绘制带有Lat、Lng和void的标记

没关系,但现在我想在地图上画标记,但不需要按下按钮。
我该怎么做呢?

那么现在您正在添加带有按钮和功能的标记,并且希望不按按钮就添加它们


您可以在状态小部件上创建一组标记

设置标记=设置

然后你可以在你的构建方法中填充这组标记

markers.addAll([
  Marker(
      markerId: MarkerId('value'),
      position: LatLng(37.416780, -122.077430)),
  Marker(
      markerId: MarkerId('value2'),
      position: LatLng(37.416000, -122.077000)),
]);
集合类也有各种构造函数方法。你可以只使用一个,你不必添加它们。 然后你可以把这个填充集传递给你的谷歌地图小部件

child: GoogleMap(
                  onMapCreated: _onMapCreated,
                  myLocationEnabled: true,
                  initialCameraPosition:
                      CameraPosition(target: LatLng(0.0, 0.0)),
                  markers: 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(
 future: myMarkers(),
  builder: (BuildContext context, AsyncSnapshot snapshot) {
   return GoogleMap(
     mapType: MapType.normal,
     initialCameraPosition: _kGooglePlex,
     markers: snapshot.data,
   );
  },
 ),
```
FutureBuilder(
 future: myMarkers(),
  builder: (BuildContext context, AsyncSnapshot snapshot) {
   return GoogleMap(
     mapType: MapType.normal,
     initialCameraPosition: _kGooglePlex,
     markers: snapshot.data,
   );
  },
 ),
```