| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import 'dart:async';
- import 'package:flutter/services.dart';
- import 'bean/amap_marker.dart';
- class AmapViewController {
- MethodChannel _methodChannel;
- StreamController _guideStreamController;
- Stream<Map> get guideStream => _guideStreamController.stream;
- AmapViewController(int id) {
- _methodChannel = MethodChannel("com.i2edu.mapView/map_view_$id");
- _methodChannel.setMethodCallHandler(platformCallHandler);
- _guideStreamController = StreamController<Map>.broadcast();
- }
- Future<void> platformCallHandler(MethodCall call) async {
- try {
- if (call.method == "guide") {
- _guideStreamController.add(call.arguments);
- }
- } catch (ex) {
- print('Unexpected error: $ex');
- }
- return null;
- }
- Future<void> setMapMarkers(List<AmapMarker> markers) async {
- return await _methodChannel.invokeMethod(
- "setMarkers", {"markers": markers.map((f) => f.toMap()).toList()});
- }
- Future<void> onCreateMapView() async {
- return await _methodChannel.invokeMethod('onCreate');
- }
- Future<void> onPauseMapView() async {
- return await _methodChannel.invokeMethod('onPause');
- }
- Future<void> onResumeMapView() async {
- return await _methodChannel.invokeMethod('onResume');
- }
- void dispose() {
- if (!_guideStreamController.isClosed) {
- _guideStreamController.close();
- }
- }
- }
|