Я следовал этому уроку: https://www.youtube.com/watch?v=MYHVyl-juUk. Вам не нужно его смотреть - просто если вы спрашиваете себя, почему я это сделал.
Версия плагина карт находится в этомучебное пособие было ^0.2.0
Текущая версия ^0.5.3
Кажется, проблема с mapController
.В одном месте разрешено mapController
.Я отмечаю каждую проблему с помощью ** code
**
build(context) {
return Stack(children: [
GoogleMap(
initialCameraPosition:
CameraPosition(target: LatLng(24.150, -110.32), zoom: 10),
onMapCreated: _onMapCreated,
myLocationEnabled: true,
mapType: MapType.normal,
** trackCameraPosition: true), ** //maybe because of the new version?
Positioned(
bottom: 50,
right: 10,
child: FlatButton(
child: Icon(Icons.pin_drop),
color: Colors.green,
onPressed: () => _addMarker()),
),
]);
}
void _onMapCreated(GoogleMapController controller) {
setState(() {
mapController = controller;
});
}
}
_addMarker() {
var marker = ** MarkerOptions(**
position: **mapController.cameraPosition.target,**
icon: BitmapDescriptor.defaultMarker,
infoWindowText: **InfoWindowText('Magic Marker')**
);
** mapController.addMarker(marker); **
}
Я изменил функцию _addMarker()
на эту (снова с ** code
**, чтобы отметить проблемы):
_addMarker() {
var marker = Marker(
markerId: MarkerId('test'),
** position: mapController.cameraPosition.target, **
icon: BitmapDescriptor.defaultMarker,
infoWindow: InfoWindow(title: 'hello'),
);
** mapController.addMarker(marker); **
}
(потому что документация Marker
имеет такие же свойства, как MarkerOptions
из учебника)
Как я могу это исправить сейчас и в будущем?
С уважением