diff --git a/.fvm/flutter_sdk b/.fvm/flutter_sdk new file mode 120000 index 0000000..8d193f7 --- /dev/null +++ b/.fvm/flutter_sdk @@ -0,0 +1 @@ +/Users/hugo/fvm/versions/3.10.3 \ No newline at end of file diff --git a/.fvm/fvm_config.json b/.fvm/fvm_config.json new file mode 100644 index 0000000..2472741 --- /dev/null +++ b/.fvm/fvm_config.json @@ -0,0 +1,4 @@ +{ + "flutterSdkVersion": "3.10.3", + "flavors": {} +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 50f787b..1f6842e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 5.0.0 - 2023-10-31 🎃 +- **[BREAKING]** Upgrade `flutter_map` to `^6.0.0`. + ## 5.0.0 - 2023-06-05 - **[BREAKING]** Upgrade `flutter_map` to `^5.0.0`. *Thanks [@azaderdogan](https://github.com/azaderdogan) and [@JaffaKetchup](https://github.com/JaffaKetchup) 👏* diff --git a/README.md b/README.md index e40e528..e4a2873 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Add [`flutter_map`](https://github.com/johnpryan/flutter_map) and `flutter_map_t ```yaml dependencies: - flutter_map: ^5.0.0 + flutter_map: ^6.0.1 flutter_map_tappable_polyline: any # take latest version on Pub ``` diff --git a/example/.fvm/flutter_sdk b/example/.fvm/flutter_sdk new file mode 120000 index 0000000..8d193f7 --- /dev/null +++ b/example/.fvm/flutter_sdk @@ -0,0 +1 @@ +/Users/hugo/fvm/versions/3.10.3 \ No newline at end of file diff --git a/example/.fvm/fvm_config.json b/example/.fvm/fvm_config.json new file mode 100644 index 0000000..2472741 --- /dev/null +++ b/example/.fvm/fvm_config.json @@ -0,0 +1,4 @@ +{ + "flutterSdkVersion": "3.10.3", + "flavors": {} +} \ No newline at end of file diff --git a/example/android/build.gradle b/example/android/build.gradle index 2d58113..cc6ab51 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -26,6 +26,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index f683e9f..d53f896 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -179,10 +179,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -193,6 +195,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 1579fb3..4f68a2c 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -43,5 +43,7 @@ CADisableMinimumFrameDurationOnPhone + UIApplicationSupportsIndirectInputEvents + diff --git a/example/lib/main.dart b/example/lib/main.dart index 870b050..cbe3a27 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -67,8 +67,8 @@ class _MyHomePageState extends State { ), body: FlutterMap( options: MapOptions( - center: LatLng(45.1313258, 5.5171205), - zoom: 11.0, + initialCenter: LatLng(45.1313258, 5.5171205), + initialZoom: 11.0, ), children: [ TileLayer( diff --git a/example/pubspec.lock b/example/pubspec.lock index 46167a6..c6fa721 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -66,10 +66,10 @@ packages: dependency: transitive description: name: flutter_map - sha256: "5286f72f87deb132daa1489442d6cc46e986fc105cb727d9ae1b602b35b1d1f3" + sha256: "2b925948b675ef74ca524179fb133dbe0a21741889ccf56ad08fc8dcc38ba94b" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.1" flutter_map_tappable_polyline: dependency: "direct main" description: @@ -130,6 +130,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + logger: + dependency: transitive + description: + name: logger + sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac" + url: "https://pub.dev" + source: hosted + version: "2.0.2+1" matcher: dependency: transitive description: diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 5d03879..735daad 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,6 +1,6 @@ name: example description: A new Flutter project. -version: 5.0.0 +version: 6.0.0 publish_to: "none" environment: diff --git a/lib/flutter_map_tappable_polyline.dart b/lib/flutter_map_tappable_polyline.dart index 057cd30..3c0c538 100644 --- a/lib/flutter_map_tappable_polyline.dart +++ b/lib/flutter_map_tappable_polyline.dart @@ -3,7 +3,7 @@ library flutter_map_tappable_polyline; import 'dart:math'; import 'package:flutter/widgets.dart'; -import 'package:flutter_map/plugin_api.dart'; +import 'package:flutter_map/flutter_map.dart'; import 'package:latlong2/latlong.dart'; /// A polyline with a tag @@ -45,27 +45,28 @@ class TappablePolylineLayer extends PolylineLayer { this.onTap, this.onMiss, this.pointerDistanceTolerance = 15, - super.polylineCulling = false, - super.key, - }); + polylineCulling = false, + key, + }) : super(key: key, polylines: polylines, polylineCulling: polylineCulling); @override Widget build(BuildContext context) { - final map = FlutterMapState.of(context); + final mapCamera = MapCamera.of(context); return _build( context, - Size(map.size.x, map.size.y), + Size(mapCamera.size.x, mapCamera.size.y), polylineCulling ? polylines - .where((p) => p.boundingBox.isOverlapping(map.bounds)) + .where( + (p) => p.boundingBox.isOverlapping(mapCamera.visibleBounds)) .toList() : polylines, ); } Widget _build(BuildContext context, Size size, List lines) { - FlutterMapState mapState = FlutterMapState.maybeOf(context)!; + final mapState = MapCamera.of(context); for (TaggedPolyline polyline in lines) { polyline._offsets.clear(); @@ -73,7 +74,7 @@ class TappablePolylineLayer extends PolylineLayer { for (var point in polyline.points) { var pos = mapState.project(point); pos = (pos * mapState.getZoomScale(mapState.zoom, mapState.zoom)) - - mapState.pixelOrigin; + mapState.pixelOrigin.toDoublePoint(); polyline._offsets.add(Offset(pos.x.toDouble(), pos.y.toDouble())); if (i > 0 && i < polyline.points.length) { polyline._offsets.add(Offset(pos.x.toDouble(), pos.y.toDouble())); @@ -88,10 +89,10 @@ class TappablePolylineLayer extends PolylineLayer { // For some strange reason i have to add this callback for the onDoubleTapDown callback to be called. }, onDoubleTapDown: (TapDownDetails details) { - _zoomMap(details, context, mapState); + _zoomMap(details, context); }, onTapUp: (TapUpDetails details) { - _forwardCallToMapOptions(details, context, mapState); + _forwardCallToMapOptions(details, context); _handlePolylineTap(details, onTap, onMiss); }, child: Stack( @@ -173,16 +174,17 @@ class TappablePolylineLayer extends PolylineLayer { onTap!(candidates[closestToTapKey], details); } - void _forwardCallToMapOptions( - TapUpDetails details, BuildContext context, FlutterMapState mapState) { + void _forwardCallToMapOptions(TapUpDetails details, BuildContext context) { final latlng = _offsetToLatLng(details.localPosition, context.size!.width, - context.size!.height, mapState); + context.size!.height, context); + + final mapOptions = MapOptions.of(context); final tapPosition = TapPosition(details.globalPosition, details.localPosition); // Forward the onTap call to map.options so that we won't break onTap - mapState.options.onTap?.call(tapPosition, latlng); + mapOptions.onTap?.call(tapPosition, latlng); } double _distance(Offset point1, Offset point2) { @@ -194,21 +196,24 @@ class TappablePolylineLayer extends PolylineLayer { return distance; } - void _zoomMap( - TapDownDetails details, BuildContext context, FlutterMapState mapState) { + void _zoomMap(TapDownDetails details, BuildContext context) { + final mapCamera = MapCamera.of(context); + final mapController = MapController.of(context); + var newCenter = _offsetToLatLng(details.localPosition, context.size!.width, - context.size!.height, mapState); - mapState.move(newCenter, mapState.zoom + 0.5, - source: MapEventSource.doubleTap); + context.size!.height, context); + mapController.move(newCenter, mapCamera.zoom + 0.5); } LatLng _offsetToLatLng( - Offset offset, double width, double height, FlutterMapState mapState) { - var localPoint = CustomPoint(offset.dx, offset.dy); + Offset offset, double width, double height, BuildContext context) { + final mapCamera = MapCamera.of(context); + + var localPoint = Point(offset.dx, offset.dy); var localPointCenterDistance = - CustomPoint((width / 2) - localPoint.x, (height / 2) - localPoint.y); - var mapCenter = mapState.project(mapState.center); + Point((width / 2) - localPoint.x, (height / 2) - localPoint.y); + var mapCenter = mapCamera.project(mapCamera.center); var point = mapCenter - localPointCenterDistance; - return mapState.unproject(point); + return mapCamera.unproject(point); } } diff --git a/pubspec.lock b/pubspec.lock index 305afa2..0e3e188 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -50,10 +50,10 @@ packages: dependency: "direct main" description: name: flutter_map - sha256: "5286f72f87deb132daa1489442d6cc46e986fc105cb727d9ae1b602b35b1d1f3" + sha256: "2b925948b675ef74ca524179fb133dbe0a21741889ccf56ad08fc8dcc38ba94b" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.1" http: dependency: transitive description: @@ -102,6 +102,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + logger: + dependency: transitive + description: + name: logger + sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac" + url: "https://pub.dev" + source: hosted + version: "2.0.2+1" material_color_utilities: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 263f799..c256cf7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,7 +10,7 @@ environment: dependencies: flutter: sdk: flutter - flutter_map: ^5.0.0 + flutter_map: ^6.0.1 latlong2: ^0.9.0 dev_dependencies: