Browse Source

[new]调整地图接口实现

zk 3 months ago
parent
commit
cb87d0efb4

+ 1 - 1
plugins/map/lib/src/core/flutter_map.dart

@@ -13,7 +13,7 @@ class FlutterMap {
     }
     MethodChannel channel = const MethodChannel(MapConstants.mapMethodChannel);
 
-    MapPlatform mapPlatform = MapPlatform(channel);
+    MapPlatform mapPlatform = MapPlatformImpl(channel);
     if (!await mapPlatform.init()) {
       throw Exception("地图初始化失败,未找到适配的地图,请检查是否添加地图库");
     }

+ 9 - 1
plugins/map/lib/src/core/map_controller.dart

@@ -15,12 +15,19 @@ import 'package:flutter_map/src/interface/map_marker_interface.dart';
 import 'package:flutter_map/src/interface/map_polyline_interface.dart';
 import '../entity/map_padding.dart';
 
-class MapController
+abstract class MapBaseController
     implements MapMarkerInterface, MapFunInterface, MapPolylineInterface {
+  void setChannel(MethodChannel channel);
+
+  void dispose();
+}
+
+class MapController implements MapBaseController {
   final _pendingOperations = <Map<String, dynamic>>[];
   MethodChannel? _channel;
   bool _isDisposed = false;
 
+  @override
   void setChannel(MethodChannel channel) {
     if (_isDisposed) return;
 
@@ -37,6 +44,7 @@ class MapController
     });
   }
 
+  @override
   void dispose() {
     _isDisposed = true;
     _pendingOperations.clear();

+ 4 - 2
plugins/map/lib/src/core/map_platform.dart

@@ -4,13 +4,15 @@ import 'package:flutter/services.dart';
 import 'package:flutter_map/src/interface/map_trace_interface.dart';
 import '../../flutter_map.dart';
 
-class MapPlatform implements MapSDKInterface, MapTraceInterface {
+abstract class MapPlatform implements MapSDKInterface, MapTraceInterface {}
+
+class MapPlatformImpl implements MapPlatform {
   final MethodChannel _channel;
 
   final EventChannel _eventChannel =
       const EventChannel(MapConstants.mapLocationEventChannel);
 
-  MapPlatform(this._channel);
+  MapPlatformImpl(this._channel);
 
   @override
   Future<String?> getPlatformName() {

+ 1 - 1
plugins/map/lib/src/widget/map_widget.dart

@@ -14,7 +14,7 @@ import '../../flutter_map.dart';
 import '../entity/polyline.dart';
 
 class MapWidget extends StatefulWidget {
-  final MapController? controller;
+  final MapBaseController? controller;
   final MarkerTapCallback? onMarkerTap;
   final List<Marker>? markers;
   final List<Polyline>? polyline;