Saya menerapkan paket ini https://pub.dev/packages/geolocator tapi saya tidak tahu caranya untuk menggunakan StreamSubscription.

class LocationService{

  UserLocation _userLocation;
  
  StreamController<UserLocation> locationUserController;

  var geolocator = Geolocator();
  var locationOptions = LocationOptions(accuracy: LocationAccuracy.high, distanceFilter: 10);

  LocationService(){

    geolocator.getPositionStream(locationOptions).listen(
    (Position position) {
        if (position != null){
          locationUserController.add(UserLocation(
            latitude: position.latitude,
            longitude: position.longitude
          ));
        }
    });
  }
}

Saya menerapkan GeoLocator.Itu menetapkan nilai ke dalam kelas model UserLocation.

class UserLocation{
  final double latitude;
  final double longitude;

  UserLocation({this.latitude, this.longitude});
}

Bagaimana cara mengakses UserLocation ini setiap kali nilainya berubah?

Saya perlu mengakses data ini di MapsScreen

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    //my try. I don't know what I'm doing
    //StreamProvider<UserLocation>(
    //  create: (_) => LocationService().locationUserController,
    //)
    return MaterialApp(
      title: 'UnMatch',
      theme: ThemeData(
        primaryColor: ThemeColor.nero,
      ),
      initialRoute: '/home',
      routes: {
        '/home' : (context) => MapScreen(),
        '/login' : (context) => Login()
      }
    );  
  }
}

Bisakah Anda menjelaskan dan memasukkan kode bagaimana saya harus melakukannya? aku sangat bingung dengannya...

0
Denis Ken 8 Juli 2020, 23:42

1 menjawab

Jawaban Terbaik

Agak mengejutkan melihat ini, tetapi saya melihat video youtube dengan kode persis yang perlu Anda jelaskan langkah demi langkah.

Berikut video dari FilledStacks

1
Abdul Malik 9 Juli 2020, 08:48