首页 > 解决方案 > 如何使用谷歌地图插件添加标记并在标记上设置自定义点击事件?

问题描述

我有一个这样的标记列表

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 地图onTap并向这些标记添加方法?

标签: google-mapsflutter

解决方案


与 google_maps_flutter 0.3.0 一样,marker api 已更改。在 0.3.0 之前,您必须像这样在控制器上添加标记。

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

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


推荐阅读