如何使用Google Maps Plugin添加标记并在标记上设置自定义点击事件?

时间:2019-03-21 07:25:08

标签: google-maps flutter

我有一个这样的标记列表

List<Marker> markers = <Marker>[
    new Marker("1", "Name 1", 28.421364, 77.333804,
        color: Colors.amber),
    new Marker("2", "Name 2", 28.418684, 77.340417,
        color: Colors.purple),
  ];

以及显示和绘制地图的基本代码

class  HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => new _HomePageState();
}
class _HomePageState extends State<HomePage> {
  Completer<GoogleMapController> _controller = Completer();
  static final CameraPosition _kGooglePlex = CameraPosition(
    target: LatLng(11.052992, 106.681612),
    zoom: 11,
  );
  @override
  Widget build(BuildContext context){
    return new Scaffold(
      body: GoogleMap(
        initialCameraPosition: _kGooglePlex,
        onMapCreated: (GoogleMapController controller) {
          _controller.complete(controller);
        },
      ),
    );
  }
}

如何将List<Marker>中的标记添加到Google Maps并将onTap方法添加到这些标记?

1 个答案:

答案 0 :(得分:0)

与google_maps_flutter 0.3.0一样,标记api具有changed。在0.3.0之前,您必须像这样在控制器上添加标记。

mapController.addMarker(
  MarkerOptions(
    position: LatLng(37.4219999, -122.0862462),
  ),
);

更改标记api后,GoogleMap小部件具有一个名为markers的属性,该属性使用标记集,而不是标记列表。因此,您可以为GoogleMap小部件设置一组标记。标记还具有用于点击的onTap属性。