Включение маркеров в карту Google для флаттера на основе файла Json - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь добавить маркер в свой виджет карты на основе строки в файле Json. Однако я понятия не имею, как работает маркерная штука после того, как .addMarker больше не применяется. Может кто-нибудь объяснить, пожалуйста, на этом?

1 Ответ

2 голосов
/ 23 апреля 2019

Атрибут markers: в виджете Flutter_Google_maps теперь принимает Set<Marker>().

чтобы добавить маркеры, сначала вы должны создать пустой Set типа Marker и назначить его атрибуту markers: в виджете карт Google. Следовательно, вы добавляете желаемый Marker() к созданному набору, используя метод add(). Наконец, вы используете setState() для перестройки виджета и отображения обновленных маркеров, установленных в пользовательском интерфейсе.

Пример:

class MapsScreen extends StatefulWidget {
  @override
  _MapsScreenState createState() => _MapsScreenState();
}

class _MapsScreenState extends State<MapsScreen> {
  Completer<GoogleMapController> _mapsController = Completer();
  Set<Marker> _myMarkers = Set<Marker>();

  @override
  Widget build(BuildContext context) {
  return Scaffold(
  floatingActionButton: FloatingActionButton(
    onPressed: () {
      _myMakers.add(
      markerId: MarkerId("current"),
      position: LatLng(yourLatitude, yourLongitude),
      );
       setState((){});
      )},
    ),
  body: GoogleMap(
    initialCameraPosition: _anyCameraPosition,
    markers: _myMarkers,
    onMapCreated: (GoogleMapController controller) {
        _mapsController.complete(controller);
     },
    );
  );

 }
}

у вас есть возможность использовать любой шаблон управления состоянием, который вы предпочитаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...