#api #google-maps #flutter #dart #google-maps-android-api-2
#API #google-карты #флаттер #dart #google-maps-android-api-2
Вопрос:
Я нашел код в учебнике, который больше не работает. Проведя некоторое исследование, я понял, что API карт Google был изменен, и поэтому код больше не работает. Учебное пособие относится к 2018 году. Может кто-нибудь из вас сказать мне, как написать этот код в настоящее время? clearMarkers()
И подчеркнуты addMarker()
красным.
Код:
void initMarker(client) {
mapController.clearMarkers().then((val) {
mapController.addMarker(
Marker(
position:
LatLng(client['location'].latitude, client['location'].longitude),
infoWindow: InfoWindow(title: client['name'])
),
);
});
}
Ответ №1:
Сначала создайте список маркеров:
List<Marker> _markers = <Marker>[];
Затем заполните список, что-то вроде этого:
//for 1..100
_markers.add(
Marker(
markerId: MarkerId("someId"),
infoWindow: InfoWindow(title: "Marker Title", snippet: "$snippet"),
position: LatLng(currentLocation.coordinates[1], currentLocation.coordinates[0]),
)
);
Теперь измените свои GoogleMaps на что-то вроде этого:
GoogleMap(
initialCameraPosition: CameraPosition(
target: LatLng(38.9647,35.2233),
zoom: 9.0,
),
mapType: MapType.normal,
markers: Set<Marker>.of(_markers),
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
},
)
Чтобы очистить маркеры, просто очистите список маркеров с помощью setState
setState(() {
_markers.clear();
});