2

I am accessing/showing the current location of the user on flutter google map. But a getting a little confused in onLocationChanged.listen() callback event. Can you make me understand the flow of execution of that particular callback?

Here is my code:

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart';

class GoogleMapPage extends StatefulWidget {
  @override
  _GoogleMapPageState createState() => _GoogleMapPageState();
}

class _GoogleMapPageState extends State<GoogleMapPage> {
  LatLng _initialPosition = LatLng(20.2961, 85.8245);              
  GoogleMapController _controller;
  Location _location = Location();

  // For holding Co-ordinates as LatLng
  final List<LatLng> polyPoints = [];

  //For holding instance of Polyline
  final Set<Polyline> polyLines = {};

  void _onMapCreated(GoogleMapController _cntrl) {
    _controller = _cntrl;
    _location.onLocationChanged.listen((l) {
      _controller.animateCamera(
        CameraUpdate.newCameraPosition(
          CameraPosition(
            target: LatLng(l.latitude, l.longitude),
            zoom: 15
          ),
        ),
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          GoogleMap(
            initialCameraPosition:
                CameraPosition(target: _initialPosition, zoom: 13),
            mapType: MapType.normal,
            onMapCreated: _onMapCreated,
            myLocationEnabled: true,
          ),
        ],
      ),
    );
  }
}

0 Answers0