Skip to content

Upgrading geolocator 5 to 6

Breaking5.3.2+2 → 6.2.1Breaking3Deprecated1New7Changed7Fixed21Other7

BreakingUpgrade verdict

3 breaking changes.

  • You now call geolocator features through a class instead of standalone functions, so existing code needs updating.
  • This version changes how the plugin works, so existing code may need updates.
  • Geocoding is no longer part of this plugin; use the separate geocoding plugin instead.
  • The timeInterval option for streaming location updates is being retired. Use the new intervalDuration option instead.
4 items need code or config changes

Dart SDK requirement changed in 6.0.0-rc.1: >=2.1.0 <3.0.0 → >=2.7.0 <3.0.0.

Requires Flutter >=1.10.0 from 6.0.0-rc.1 (none stated before).

Breaking3
Wraps all global functions in a static class, changing how geolocator methods are called.
Rebuilds the geolocator plugin with breaking changes.
Moves geocoding features to their own plugin, geocoding.
Deprecated1
Deprecates the timeInterval parameter of getPositionStream in favor of the more semantic intervalDuration parameter.
getPositionStreamtimeIntervalintervalDuration

Generated by DepDelta from published Dart source. Not mixed with prose notes.

  • removed: class Codec
  • removed: class GeolocationPermission
  • removed: class GeolocationStatus
  • removed: class LocationAccuracy
  • removed: class LocationOptions
  • removed: class Placemark
  • removed: class Position extends Equatable
  • removed: ctor Geolocator()
  • removed: ctor Geolocator.private( this._methodChannel, this._eventChannel, this._permissionHandler, )
  • removed: ctor LocationOptions( {this.accuracy = …, this.distanceFilter = …, this.forceAndroidLocationManager = …, this.timeInterval = …})
  • removed: ctor Placemark( {this.name, this.isoCountryCode, this.country, this.postalCode, this.administrativeArea, this.subAdministrativeArea, this.locality, this.subLocality, this.thoroughfare, this.subThoroughfare, this.position})
  • removed: ctor Position({ this.longitude, this.latitude, this.timestamp, this.mocked, this.accuracy, this.altitude, this.heading, this.speed, this.speedAccuracy, })
  • removed: field GeolocationPermission.value: final int
  • removed: field GeolocationStatus.value: final int
  • removed: field Geolocator.forceAndroidLocationManager: bool
  • removed: field LocationAccuracy.value: final int
  • removed: field LocationOptions.accuracy: final LocationAccuracy
  • removed: field LocationOptions.distanceFilter: final int
  • removed: field LocationOptions.forceAndroidLocationManager: final bool
  • removed: field LocationOptions.timeInterval: final int
  • removed: field Placemark.administrativeArea: final String
  • removed: field Placemark.country: final String
  • removed: field Placemark.isoCountryCode: final String
  • removed: field Placemark.locality: final String
  • removed: field Placemark.name: final String
  • removed: field Placemark.position: final Position
  • removed: field Placemark.postalCode: final String
  • removed: field Placemark.subAdministrativeArea: final String
  • removed: field Placemark.subLocality: final String
  • removed: field Placemark.subThoroughfare: final String
  • removed: field Placemark.thoroughfare: final String
  • removed: field Position.accuracy: final double
  • removed: field Position.altitude: final double
  • removed: field Position.heading: final double
  • removed: field Position.latitude: final double
  • removed: field Position.longitude: final double
  • removed: field Position.mocked: final bool
  • removed: field Position.speed: final double
  • removed: field Position.speedAccuracy: final double
  • removed: field Position.timestamp: final DateTime
  • removed: function fromPermissionStatus(PermissionStatus status): GeolocationStatus
  • removed: function toPermissionLevel(GeolocationPermission permission): LocationPermissionLevel
  • removed: get Placemark.hashCode: int
  • removed: get Position.hashCode: int
  • removed: get Position.props: List<Object>
  • removed: method GeolocationPermission.toString(): String
  • removed: method GeolocationStatus.toString(): String
  • removed: method Geolocator.checkGeolocationPermissionStatus( {GeolocationPermission locationPermission = …}): Future<GeolocationStatus>
  • removed: method Geolocator.placemarkFromAddress(String address, {String localeIdentifier}): Future<List<Placemark>>
  • removed: method Geolocator.placemarkFromCoordinates( double latitude, double longitude, { String localeIdentifier, }): Future<List<Placemark>>
  • removed: method Geolocator.placemarkFromPosition( Position position, { String localeIdentifier, }): Future<List<Placemark>>
  • removed: method LocationAccuracy.toString(): String
  • removed: method Placemark.operator ==(o): bool
  • removed: method Placemark.toJson(): Map<String, dynamic>
  • removed: method Position.operator ==(o): bool
  • removed: method Position.toJson(): Map<String, dynamic>
  • removed: method Position.toString(): String
  • removed: static field GeolocationPermission.location: const GeolocationPermission
  • removed: static field GeolocationPermission.locationAlways: const GeolocationPermission
  • removed: static field GeolocationPermission.locationWhenInUse: const GeolocationPermission
  • removed: static field GeolocationPermission.values: const List<GeolocationPermission>
  • removed: static field GeolocationStatus.denied: const GeolocationStatus
  • removed: static field GeolocationStatus.disabled: const GeolocationStatus
  • removed: static field GeolocationStatus.granted: const GeolocationStatus
  • removed: static field GeolocationStatus.restricted: const GeolocationStatus
  • removed: static field GeolocationStatus.unknown: const GeolocationStatus
  • removed: static field GeolocationStatus.values: const List<GeolocationStatus>
  • removed: static field LocationAccuracy.best: const LocationAccuracy
  • removed: static field LocationAccuracy.bestForNavigation: const LocationAccuracy
  • removed: static field LocationAccuracy.high: const LocationAccuracy
  • removed: static field LocationAccuracy.low: const LocationAccuracy
  • removed: static field LocationAccuracy.lowest: const LocationAccuracy
  • removed: static field LocationAccuracy.medium: const LocationAccuracy
  • removed: static field LocationAccuracy.values: const List<LocationAccuracy>
  • removed: static method Codec.encodeLocationOptions( LocationOptions locationOptions): Map<String, dynamic>
  • removed: static method Placemark.fromMap(dynamic message): Placemark
  • removed: static method Placemark.fromMaps(dynamic message): List<Placemark>
  • removed: static method Position.fromMap(dynamic message): Position
  • removed: static method Position.fromMaps(dynamic message): List<Position>
  • changed: method Geolocator.bearingBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): Future<double> → static method Geolocator.bearingBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): double
  • changed: method Geolocator.distanceBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): Future<double> → static method Geolocator.distanceBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): double
  • changed: method Geolocator.getCurrentPosition({ LocationAccuracy desiredAccuracy = …, GeolocationPermission locationPermissionLevel = …, }): Future<Position> → static method Geolocator.getCurrentPosition({ LocationAccuracy desiredAccuracy = …, bool forceAndroidLocationManager = …, Duration timeLimit, }): Future<Position>
  • changed: method Geolocator.getLastKnownPosition( {LocationAccuracy desiredAccuracy = …, GeolocationPermission locationPermissionLevel = …}): Future<Position> → static method Geolocator.getLastKnownPosition( {bool forceAndroidLocationManager = …}): Future<Position>
  • changed: method Geolocator.getPositionStream( [LocationOptions locationOptions = …, GeolocationPermission locationPermissionLevel = …]): Stream<Position> → static method Geolocator.getPositionStream({ LocationAccuracy desiredAccuracy = …, int distanceFilter = …, bool forceAndroidLocationManager = …, @Deprecated('The timeInterval parameter has been deprecated, use the ' 'intervalDuration parameter instead') int timeInterval = …, Duration intervalDuration, Duration timeLimit, }): Stream<Position>
  • changed: method Geolocator.isLocationServiceEnabled(): Future<bool> → static method Geolocator.isLocationServiceEnabled(): Future<bool>
  • added: function bearingBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): double
  • added: function checkPermission(): Future<LocationPermission>
  • added: function distanceBetween( double startLatitude, double startLongitude, double endLatitude, double endLongitude, ): double
  • added: function getCurrentPosition({ LocationAccuracy desiredAccuracy = …, bool forceAndroidLocationManager = …, Duration timeLimit, }): Future<Position>
  • added: function getLastKnownPosition( {bool forceAndroidLocationManager = …}): Future<Position>
  • added: function getPositionStream({ LocationAccuracy desiredAccuracy = …, int distanceFilter = …, bool forceAndroidLocationManager = …, int timeInterval = …, Duration timeLimit, }): Stream<Position>
  • added: function isLocationServiceEnabled(): Future<bool>
  • added: function openAppSettings(): Future<bool>
  • added: function openLocationSettings(): Future<bool>
  • added: function requestPermission(): Future<LocationPermission>
  • added: static method Geolocator.checkPermission(): Future<LocationPermission>
  • added: static method Geolocator.openAppSettings(): Future<bool>
  • added: static method Geolocator.openLocationSettings(): Future<bool>
  • added: static method Geolocator.requestPermission(): Future<LocationPermission>