Я думаю, что моя проблема такая же, как здесь:
InfoWindowText маркера по умолчанию в виджете Google карты а>
Однако ответа нет, кроме ссылки на другой пост, а это не совсем то, что я хочу делать.
Когда моя карта открывается в моем приложении, маркеры отображаются правильно, но я также хочу, чтобы все метки отображались по умолчанию при открытии ...
Как показано здесь одним из маркеров:
Я создаю такие маркеры:
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"
}
]
}]
чтобы удалить достопримечательности с карт, и я надеюсь, что смогу сделать что-то подобное, чтобы метки маркеров отображались по умолчанию, но пока я ничего не нашел при поиске в Google, или что есть другое решение.
InfoWindow
для каждого маркера, открытый по умолчанию. Это возможно в Google Maps Javascript API v3 (связанные вопросы: Google Maps автоматически открывает infoWindow, как открыть все infoWIndows с помощью кнопки), но я не Незнаю про флаттер. У вас будет больше шансов получить полезный ответ, если вы предоставите минимально воспроизводимый пример. - person geocodezip   schedule 04.01.2021showMarkerInfoWindow();
может отображать только одно информационное окно на карте по очереди. - person jabamataro   schedule 11.01.2021