| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import 'package:flutter_map/flutter_map.dart';
- import '../../utils/atmob_log.dart';
- class MapHelper {
- MapHelper._();
- static const String tag = "FlutterMapHelper";
- static MapLocation? _lastLocation;
- static late MapPlatform _mapPlatform;
- static final List<MapLocationListener> _locationListeners = [];
- static Future<void> init() async {
- await FlutterMap.init();
- _mapPlatform = FlutterMap.getMapPlatform();
- initLocationClient();
- }
- static void initLocationClient() {
- _mapPlatform.receiveLocationStream(listener: (location) {
- AtmobLog.d(tag, "onLocationChanged: $location");
- if (location.errorCode == 0) {
- _lastLocation = location;
- try {
- for (MapLocationListener listener in _locationListeners) {
- listener.call(location);
- }
- } catch (e) {
- AtmobLog.e(tag, "onLocationChanged error: $e");
- }
- }
- });
- }
- static Future<void> startLocation() {
- return _mapPlatform.startLocation();
- }
- static MapLocation? getLastLocation() {
- return _lastLocation;
- }
- static void addLocationListener(MapLocationListener listener) {
- _locationListeners.add(listener);
- }
- static void removeLocationListener(MapLocationListener listener) {
- _locationListeners.remove(listener);
- }
- }
|