如何使用 Google Maps Flutter 默认显示地图标签
Posted
技术标签:
【中文标题】如何使用 Google Maps Flutter 默认显示地图标签【英文标题】:How to display map labels by default with Google Maps Flutter 【发布时间】:2021-04-10 01:44:57 【问题描述】:我想我的问题和这里一样:
Flutter show marker's infoWindowText by default in Google map widget
但是,没有答案,除了指向另一篇文章的链接,这不是我想要做的。
当我的地图在我的应用程序中打开时,它会正确显示标记,但我还希望在打开时默认显示所有标签...
正如此处的标记之一所示:
我正在创建这样的标记:
for (Location location in _locations)
final locationMarker = Marker(
markerId: MarkerId(location.id),
position: LatLng(location.geoY, location.geoX),
infoWindow: InfoWindow(
title: location.name,
),
onTap: () => _onTap(location),
icon: _mapMarkers.icon(location.slug),
draggable: false);
markers.add(locationMarker);
那么地图是这样的:
Widget _map(Set<Marker> markers) => GoogleMap(
mapType: MapType.normal,
initialCameraPosition: CameraPosition(target: widget.mapCentre),
markers: markers,
...
onMapCreated: (controller) => _onMapCreated(controller, markers),
);
在 _onMapCreated 中,我尝试显示所有标签,但实际上只显示了标记列表中的最后一个:
_onMapCreated(GoogleMapController controller, Set<Marker> markers)
if (mounted)
setState(()
_controller.complete(controller);
controller.setMapStyle(_mapStyle);
for (var marker in markers)
controller.showMarkerInfoWindow(marker.markerId);
);
...
我正在使用:
[
"featureType": "poi",
"stylers": [
"visibility": "off"
]
]
从地图中删除兴趣点,我希望我可以做一些类似的事情来让标记标签默认显示,但到目前为止我在搜索谷歌时没有找到任何东西,或者还有另一种解决方案。
【问题讨论】:
您提供minimal reproducible example 怎么样?什么是“地图标签”(如您的问题标题)?什么是“标记标签”(如您的问题文本中)?你如何创造它们?你都尝试了些什么?等 在我看来,您希望每个标记都有一个单独的InfoWindow
,默认打开。这在 Google Maps javascript API v3 中是可能的(相关问题:google maps auto open infoWindow,how to open all infoWIndows with button),但我不知道颤振。如果您提供minimal reproducible example,您将更有可能获得有用的答案。
好的,添加了最小示例。还将查看 API v3。
根据github issue,方法showMarkerInfoWindow();
一次只能在地图上显示一个信息窗口。
【参考方案1】:
您可以使用 GoogleMapController 的 showMarkerInfoWindow 属性
final GoogleMapController controller = await _controller.future;
controller.showMarkerInfoWindow(MarkerId('ID_MARKET'));
【讨论】:
以上是关于如何使用 Google Maps Flutter 默认显示地图标签的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Google Maps Flutter 默认显示地图标签
Flutter:如何使用新的 Marker API 向 Google Maps 添加标记?
Flutter:如何将 mylocation 按钮放在 Google Maps 上的不同位置?
Flutter:Google Maps 如何从 Firestore 设置图标