тип 'String' не является подтипом типа 'double' - PullRequest
0 голосов
/ 09 июля 2020

Я хочу создать приложение, которое отображает aws маркер на карте Google. Это все еще легко, но я хочу, чтобы firebase давала значения широты и долготы маркера. Я попробовал это с помощью приведенного ниже кода, и все сработало (я могу распечатать два значения), за исключением того, что маркер нарисован.

Это код, который я пробовал:

  var boatLatitude;
  var boatLongitude;

void getBoatLocation() {
    FirebaseDatabase.instance
        .reference()
        .child('latitudeBoot')
        .onValue
        .listen((event) {
      print('-----------------------' + event.snapshot.value);
      setState(() {
        boatLatitude = event.snapshot.value;
      });
    });
    FirebaseDatabase.instance
        .reference()
        .child('longitudeBoot')
        .onValue
        .listen((event) {
      print(event.snapshot.value + '----------------------');
      setState(() {
        boatLongitude = event.snapshot.value;
      });
      Marker c = Marker(
          markerId: MarkerId('3'),
          icon: customIconBoat,
          position: LatLng(boatLatitude, boatLongitude));
      setState(() {
        markers.add(c);
      });
    });
  }

Я вызываю при запуске приложения.

Проблема в том, что я получаю это сообщение и не знаю, как решить проблему:

E/flutter (22304): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type 'String' is not a subtype of type 'double'

1 Ответ

2 голосов
/ 09 июля 2020

замените эту строку

position: LatLng(boatLatitude, boatLongitude));

на эту:

position: LatLng(double.parse('$boatLatitude'), double.parse('$boatLongitude')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...