google-maps - 如何使用谷歌地图插件添加标记并在标记上设置自定义点击事件?
问题描述
我有一个这样的标记列表
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_maps_flutter 0.3.0 一样,marker api 已更改。在 0.3.0 之前,您必须像这样在控制器上添加标记。
mapController.addMarker(
MarkerOptions(
position: LatLng(37.4219999, -122.0862462),
),
);
更改标记 api 后,GoogleMap 小部件有一个名为标记的属性,它采用标记集,而不是标记列表。因此,您可以为您的 GoogleMap 小部件提供一组标记。标记还具有用于点击的 onTap 属性。
推荐阅读
- c# - 在 Unity 5 中检查附近物体的碰撞是否随机生成物体
- php - 从 HTML / PHP 表单传输数据的问题
- bash - 如何将路径从 shell 读取命令传递到 wslpath
- mysql - 如果 mysql/mariadb 中的日期早于 1 小时,请更改列值?
- c - 线程如何仅在 C Linux 中使用 syscall 自杀
- ecmascript-6 - 静态类方法中的 JavaScript ES6 setInterval
- wso2 - 在 REST API 中指定自定义租户 ID
- c - 是否最好每次都刷新标准输出/标准错误?
- ruby-on-rails - Rails 6 - Phusion error for uninitialized constant URI::Generic
- python - 仅执行大型 jupyter 笔记本中的一些单元格