From ddf9dc006673f51ae43ad141ac21c8d80f401ca2 Mon Sep 17 00:00:00 2001 From: ZhuJHua <1624109111@qq.com> Date: Tue, 12 Nov 2024 14:26:05 +0800 Subject: [PATCH] fix(map): fix map cache error --- lib/pages/map/map_logic.dart | 16 ++++++++++------ lib/pages/map/map_state.dart | 4 ++++ lib/pages/map/map_view.dart | 5 ++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/pages/map/map_logic.dart b/lib/pages/map/map_logic.dart index 78b84fd..b12469f 100644 --- a/lib/pages/map/map_logic.dart +++ b/lib/pages/map/map_logic.dart @@ -6,6 +6,7 @@ import 'package:latlong2/latlong.dart'; import 'package:mood_diary/pages/diary_details/diary_details_logic.dart'; import 'package:mood_diary/router/app_routes.dart'; import 'package:mood_diary/utils/utils.dart'; +import 'package:permission_handler/permission_handler.dart'; import 'map_state.dart'; @@ -28,11 +29,14 @@ class MapLogic extends GetxController { super.onClose(); } - Future getLocation() async { - Position? position; - position = await Geolocator.getLastKnownPosition(forceAndroidLocationManager: true); - position ??= await Geolocator.getCurrentPosition(locationSettings: AndroidSettings(forceLocationManager: true)); - return LatLng(position.latitude, position.longitude); + Future getLocation() async { + if (await Utils().permissionUtil.checkPermission(Permission.location)) { + Position? position; + position = await Geolocator.getLastKnownPosition(forceAndroidLocationManager: true); + position ??= await Geolocator.getCurrentPosition(locationSettings: AndroidSettings(forceLocationManager: true)); + return LatLng(position.latitude, position.longitude); + } + return null; } Future getAllItem() async { @@ -44,7 +48,7 @@ class MapLogic extends GetxController { var currentPosition = await getLocation(); Utils().logUtil.printInfo(currentPosition.toString()); Utils().noticeUtil.showToast('定位成功'); - mapController.move(currentPosition, mapController.camera.maxZoom!); + mapController.move(currentPosition!, mapController.camera.maxZoom!); } Future toDiaryPage({required int isarId}) async { diff --git a/lib/pages/map/map_state.dart b/lib/pages/map/map_state.dart index 983ed2a..dd9f7bd 100644 --- a/lib/pages/map/map_state.dart +++ b/lib/pages/map/map_state.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:latlong2/latlong.dart'; import 'package:mood_diary/common/models/map.dart'; import 'package:mood_diary/utils/utils.dart'; @@ -9,5 +11,7 @@ class MapState { String? tiandituKey = Utils().prefUtil.getValue('tiandituKey'); + int random = Random().nextInt(8); + MapState(); } diff --git a/lib/pages/map/map_view.dart b/lib/pages/map/map_view.dart index 1d2d19e..70ca89a 100644 --- a/lib/pages/map/map_view.dart +++ b/lib/pages/map/map_view.dart @@ -1,5 +1,4 @@ import 'dart:io'; -import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter_map/flutter_map.dart'; @@ -35,12 +34,12 @@ class MapPage extends StatelessWidget { children: [ TileLayer( urlTemplate: - 'http://t${Random().nextInt(8)}.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${state.tiandituKey}', + 'http://t6.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${state.tiandituKey}', tileProvider: const FMTCStore('mapStore').getTileProvider(), ), TileLayer( urlTemplate: - 'http://t${Random().nextInt(8)}.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${state.tiandituKey}', + 'http://t6.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=${state.tiandituKey}', tileProvider: const FMTCStore('mapStore').getTileProvider(), ), MarkerClusterLayerWidget(