Skip to content
Merged
4 changes: 4 additions & 0 deletions packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2.18.0

* Adds support for mapTypeControlEnabled, fullscreenControlEnabled, and streetViewControlEnabled on web.

## 2.17.1

* Updates README to link to implementation packages for platform-specific
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
# the parent directory to use the current plugin's version.
path: ../
google_maps_flutter_android: ^2.19.1
google_maps_flutter_platform_interface: ^2.14.2
google_maps_flutter_platform_interface: ^2.16.0

dev_dependencies:
build_runner: ^2.1.10
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ class GoogleMap extends StatefulWidget {
this.webCameraControlEnabled = true,
this.compassEnabled = true,
this.mapToolbarEnabled = true,
this.mapTypeControlEnabled = false,
this.fullscreenControlEnabled = false,
this.streetViewControlEnabled = false,
this.cameraTargetBounds = CameraTargetBounds.unbounded,
this.mapType = MapType.normal,
this.minMaxZoomPreference = MinMaxZoomPreference.unbounded,
Expand Down Expand Up @@ -374,6 +377,21 @@ class GoogleMap extends StatefulWidget {
/// See https://developers.google.com/maps/documentation/javascript/controls for more details.
final bool webCameraControlEnabled;

/// True if map type control should be shown.
///
/// Web only.
final bool mapTypeControlEnabled;

/// True if fullscreen control should be shown.
///
/// Web only.
final bool fullscreenControlEnabled;

/// True if street view control should be shown.
///
/// Web only.
final bool streetViewControlEnabled;

/// Identifier that's associated with a specific cloud-based map style.
///
/// See https://developers.google.com/maps/documentation/get-map-id
Expand Down Expand Up @@ -724,6 +742,9 @@ MapConfiguration _configurationFromMapWidget(GoogleMap map) {
webGestureHandling: map.webGestureHandling,
compassEnabled: map.compassEnabled,
mapToolbarEnabled: map.mapToolbarEnabled,
mapTypeControlEnabled: map.mapTypeControlEnabled,
fullscreenControlEnabled: map.fullscreenControlEnabled,
streetViewControlEnabled: map.streetViewControlEnabled,
cameraTargetBounds: map.cameraTargetBounds,
mapType: map.mapType,
minMaxZoomPreference: map.minMaxZoomPreference,
Expand Down
6 changes: 3 additions & 3 deletions packages/google_maps_flutter/google_maps_flutter/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: google_maps_flutter
description: A Flutter plugin for integrating Google Maps in iOS and Android applications.
repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22
version: 2.17.1
version: 2.18.0

environment:
sdk: ^3.10.0
Expand All @@ -23,8 +23,8 @@ dependencies:
sdk: flutter
google_maps_flutter_android: ^2.19.1
google_maps_flutter_ios: ^2.18.0
google_maps_flutter_platform_interface: ^2.15.0
google_maps_flutter_web: ^0.6.2
google_maps_flutter_platform_interface: ^2.16.0
google_maps_flutter_web: ^0.6.3

Comment thread
puneetkukreja98 marked this conversation as resolved.
dev_dependencies:
flutter_test:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,81 @@ void main() {
expect(map.mapConfiguration.mapToolbarEnabled, true);
});

testWidgets('Can update mapTypeControlEnabled', (WidgetTester tester) async {
await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
mapTypeControlEnabled: true,
),
),
);

final PlatformMapStateRecorder map = platform.lastCreatedMap;

expect(map.mapConfiguration.mapTypeControlEnabled, true);

await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0))),
),
);

expect(map.mapConfiguration.mapTypeControlEnabled, false);
});

testWidgets('Can update fullscreenControlEnabled', (WidgetTester tester) async {
await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
fullscreenControlEnabled: true,
),
),
);

final PlatformMapStateRecorder map = platform.lastCreatedMap;

expect(map.mapConfiguration.fullscreenControlEnabled, true);

await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0))),
),
);

expect(map.mapConfiguration.fullscreenControlEnabled, false);
});

testWidgets('Can update streetViewControlEnabled', (WidgetTester tester) async {
await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)),
streetViewControlEnabled: true,
),
),
);

final PlatformMapStateRecorder map = platform.lastCreatedMap;

expect(map.mapConfiguration.streetViewControlEnabled, true);

await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0))),
),
);

expect(map.mapConfiguration.streetViewControlEnabled, false);
});

testWidgets('Can update cameraTargetBounds', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
Expand Down
Loading