From 9cfa2d30e69520bf4090d0853b904923cdd468fe Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 10 Oct 2021 12:27:47 +0200 Subject: [PATCH 1/7] Add lite mode option to android maps and tracking mode to iOS maps --- lib/src/platform_maps.dart | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/src/platform_maps.dart b/lib/src/platform_maps.dart index 860ed81..ec1071e 100644 --- a/lib/src/platform_maps.dart +++ b/lib/src/platform_maps.dart @@ -12,6 +12,8 @@ class PlatformMap extends StatefulWidget { this.gestureRecognizers = const >{}, this.compassEnabled = true, this.mapType = MapType.normal, + this.liteModeEnabled = false, + this.trackingMode = appleMaps.TrackingMode.none, this.minMaxZoomPreference = MinMaxZoomPreference.unbounded, this.rotateGesturesEnabled = true, this.scrollGesturesEnabled = true, @@ -47,6 +49,14 @@ class PlatformMap extends StatefulWidget { /// Type of map tiles to be rendered. final MapType mapType; + /// True if the map view should be in lite mode. Google Maps only. + /// + /// See https://developers.google.com/maps/documentation/android-sdk/lite#overview_of_lite_mode for more details. + final bool liteModeEnabled; + + /// The mode used to track the user location. Apple maps only. + final appleMaps.TrackingMode trackingMode; + /// Preferred bounds for the camera zoom level. /// /// Actual bounds depend on map data and device. @@ -191,6 +201,7 @@ class _PlatformMapState extends State { zoomControlsEnabled: widget.zoomControlsEnabled, zoomGesturesEnabled: widget.zoomGesturesEnabled, scrollGesturesEnabled: widget.scrollGesturesEnabled, + liteModeEnabled: widget.liteModeEnabled, onMapCreated: _onMapCreated, onCameraMove: _onCameraMove, onTap: _onTap, @@ -214,6 +225,7 @@ class _PlatformMapState extends State { onCameraIdle: widget.onCameraIdle, myLocationButtonEnabled: widget.myLocationButtonEnabled, myLocationEnabled: widget.myLocationEnabled, + trackingMode: widget.trackingMode, onCameraMoveStarted: widget.onCameraMoveStarted, pitchGesturesEnabled: widget.tiltGesturesEnabled, rotateGesturesEnabled: widget.rotateGesturesEnabled, From ecdf917d078fb5aecbecd92f62f69a10605fa349 Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 10 Oct 2021 13:00:46 +0200 Subject: [PATCH 2/7] Increase version & add changelog --- CHANGELOG.md | 5 +++++ pubspec.yaml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 031d4f8..397dc17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.0.3 + +* Add `trackingMode` to Apple Maps +* Adds `liteMode` to Google Maps + ## 1.0.2 * Updates apple_maps_flutter to apply memory leak fix diff --git a/pubspec.yaml b/pubspec.yaml index 123d161..2ac7c19 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: platform_maps_flutter description: A Flutter package that combines google_maps and apple_maps to provide a crossplatform native map implementation. -version: 1.0.2 +version: 1.0.3 homepage: https://github.com/LuisThein repository: https://github.com/LuisThein/platform_maps_flutter issue_tracker: https://github.com/LuisThein/platform_maps_flutter/issues From e1e807d0c0f9d6245fb5bead894152592d88cc56 Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 10 Oct 2021 13:20:50 +0200 Subject: [PATCH 3/7] Use local trackingMode enum instead of apple_maps_flutter internal --- lib/src/platform_maps.dart | 17 ++++++++++++++--- lib/src/ui.dart | 11 +++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/src/platform_maps.dart b/lib/src/platform_maps.dart index ec1071e..3d4721c 100644 --- a/lib/src/platform_maps.dart +++ b/lib/src/platform_maps.dart @@ -13,7 +13,7 @@ class PlatformMap extends StatefulWidget { this.compassEnabled = true, this.mapType = MapType.normal, this.liteModeEnabled = false, - this.trackingMode = appleMaps.TrackingMode.none, + this.trackingMode = TrackingMode.none, this.minMaxZoomPreference = MinMaxZoomPreference.unbounded, this.rotateGesturesEnabled = true, this.scrollGesturesEnabled = true, @@ -55,7 +55,7 @@ class PlatformMap extends StatefulWidget { final bool liteModeEnabled; /// The mode used to track the user location. Apple maps only. - final appleMaps.TrackingMode trackingMode; + final TrackingMode trackingMode; /// Preferred bounds for the camera zoom level. /// @@ -225,7 +225,7 @@ class _PlatformMapState extends State { onCameraIdle: widget.onCameraIdle, myLocationButtonEnabled: widget.myLocationButtonEnabled, myLocationEnabled: widget.myLocationEnabled, - trackingMode: widget.trackingMode, + trackingMode: _getAppleMapTrackingMode(), onCameraMoveStarted: widget.onCameraMoveStarted, pitchGesturesEnabled: widget.tiltGesturesEnabled, rotateGesturesEnabled: widget.rotateGesturesEnabled, @@ -304,4 +304,15 @@ class _PlatformMapState extends State { } return googleMaps.MapType.normal; } + + appleMaps.TrackingMode _getAppleMapTrackingMode() { + if (widget.trackingMode == TrackingMode.none) { + return appleMaps.TrackingMode.none; + } else if (widget.trackingMode == TrackingMode.follow) { + return appleMaps.TrackingMode.follow; + } else if (widget.trackingMode == TrackingMode.followWithHeading) { + return appleMaps.TrackingMode.followWithHeading; + } + return appleMaps.TrackingMode.none; + } } diff --git a/lib/src/ui.dart b/lib/src/ui.dart index 815c228..bc5c7b5 100644 --- a/lib/src/ui.dart +++ b/lib/src/ui.dart @@ -16,6 +16,17 @@ enum MapType { hybrid, } +enum TrackingMode { + // the user's location is not followed + none, + + // the map follows the user's location + follow, + + // the map follows the user's location and heading + followWithHeading, +} + // Used with [PlatformMapOptions] to wrap min and max zoom. This allows // distinguishing between specifying unbounded zooming (null `minZoom` and // `maxZoom`) from not specifying anything (null `MinMaxZoomPreference`). From 7d6c420ac89beb64a78fd2c7ad5415d920e70e1f Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 10 Oct 2021 16:55:14 +0200 Subject: [PATCH 4/7] fix typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 397dc17..adea6a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## 1.0.3 * Add `trackingMode` to Apple Maps -* Adds `liteMode` to Google Maps +* Adds `liteModeEnabled` to Google Maps ## 1.0.2 From 51e0e731c886fc8ee8eb6712dec9c18c7d2b90dd Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 10 Oct 2021 16:55:55 +0200 Subject: [PATCH 5/7] fix typo2 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adea6a0..2cf4002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## 1.0.3 -* Add `trackingMode` to Apple Maps +* Adds `trackingMode` to Apple Maps * Adds `liteModeEnabled` to Google Maps ## 1.0.2 From e74a45dcbd460183bd67243b5cb24ea467fbcdd5 Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 17 Oct 2021 21:39:40 +0200 Subject: [PATCH 6/7] Add mapToolbarEnabled to google maps --- CHANGELOG.md | 1 + lib/src/platform_maps.dart | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cf4002..1dc26f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Adds `trackingMode` to Apple Maps * Adds `liteModeEnabled` to Google Maps +* Adds `mapToolbarEnabled` to Google Maps ## 1.0.2 diff --git a/lib/src/platform_maps.dart b/lib/src/platform_maps.dart index 3d4721c..f931927 100644 --- a/lib/src/platform_maps.dart +++ b/lib/src/platform_maps.dart @@ -14,6 +14,7 @@ class PlatformMap extends StatefulWidget { this.mapType = MapType.normal, this.liteModeEnabled = false, this.trackingMode = TrackingMode.none, + this.mapToolbarEnabled = true, this.minMaxZoomPreference = MinMaxZoomPreference.unbounded, this.rotateGesturesEnabled = true, this.scrollGesturesEnabled = true, @@ -57,6 +58,9 @@ class PlatformMap extends StatefulWidget { /// The mode used to track the user location. Apple maps only. final TrackingMode trackingMode; + /// True if the toolbar for google maps should show. + final bool mapToolbarEnabled; + /// Preferred bounds for the camera zoom level. /// /// Actual bounds depend on map data and device. From 7221169b1dd71c6c4431124a9fce534c7616c390 Mon Sep 17 00:00:00 2001 From: Jan Crha Date: Sun, 17 Oct 2021 21:44:12 +0200 Subject: [PATCH 7/7] fix --- lib/src/platform_maps.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/src/platform_maps.dart b/lib/src/platform_maps.dart index f931927..60c995f 100644 --- a/lib/src/platform_maps.dart +++ b/lib/src/platform_maps.dart @@ -213,6 +213,7 @@ class _PlatformMapState extends State { trafficEnabled: widget.trafficEnabled, minMaxZoomPreference: widget.minMaxZoomPreference.googleMapsZoomPreference, + mapToolbarEnabled: widget.mapToolbarEnabled, ); } else if (Platform.isIOS) { return appleMaps.AppleMap(