fix: 对app进行瘦身
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_map/flutter_map.dart';
|
||||
// import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
import 'dart:ui' as ui;
|
||||
|
||||
/// 地图瓦片缓存工具类
|
||||
class KRFMTC {
|
||||
static const String kr_storeName = 'kaer_map_store';
|
||||
|
||||
/// HTTP 客户端,用于复用连接
|
||||
static late final http.Client _httpClient = http.Client();
|
||||
|
||||
/// 瓦片提供者实例
|
||||
static late final TileProvider _tileProvider = NetworkTileProvider();
|
||||
|
||||
/// 判断是否在中国大陆
|
||||
static bool _kr_isInMainlandChina() {
|
||||
// 获取系统语言
|
||||
final List<Locale> systemLocales = ui.window.locales;
|
||||
final String? languageCode = systemLocales.isNotEmpty ? systemLocales.first.languageCode : null;
|
||||
final String? countryCode = systemLocales.isNotEmpty ? systemLocales.first.countryCode : null;
|
||||
|
||||
// 获取系统时区
|
||||
final String timeZoneName = DateTime.now().timeZoneName;
|
||||
|
||||
// 检查是否为中文语言环境
|
||||
bool isChineseLanguage = languageCode == 'zh';
|
||||
// 检查是否为中国地区代码
|
||||
bool isChineseRegion = countryCode == 'CN';
|
||||
// 检查是否为中国时区
|
||||
bool isChineseTimezone = timeZoneName.contains('China') || timeZoneName == 'Asia/Shanghai';
|
||||
|
||||
// 如果同时满足语言和地区或时区条件,则认为在中国大陆
|
||||
return (isChineseLanguage && (isChineseRegion || isChineseTimezone));
|
||||
}
|
||||
|
||||
/// 获取地图瓦片URL
|
||||
static String kr_getTileUrl() {
|
||||
if (_kr_isInMainlandChina()) {
|
||||
// 使用高德地图
|
||||
return 'https://webst0{s}.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}';
|
||||
} else {
|
||||
// 使用 OpenStreetMap
|
||||
return 'https://tile.openstreetmap.org/{z}/{x}/{y}.png';
|
||||
}
|
||||
}
|
||||
|
||||
/// 获取地图瓦片子域名
|
||||
static List<String> kr_getTileSubdomains() {
|
||||
if (_kr_isInMainlandChina()) {
|
||||
return ['1', '2', '3', '4'];
|
||||
} else {
|
||||
return ['a', 'b', 'c'];
|
||||
}
|
||||
}
|
||||
|
||||
/// 获取地图瓦片提供者
|
||||
static TileProvider kr_getTileProvider() {
|
||||
return _tileProvider;
|
||||
}
|
||||
|
||||
/// 初始化地图缓存
|
||||
static Future<void> kr_initMapCache() async {
|
||||
// 不使用缓存,无需实现
|
||||
}
|
||||
|
||||
/// 清理地图缓存
|
||||
static Future<void> kr_clearMapCache() async {
|
||||
// 不使用缓存,无需实现
|
||||
}
|
||||
|
||||
/// 检查瓦片是否已缓存
|
||||
static Future<bool> kr_isTileCached({
|
||||
required TileCoordinates coords,
|
||||
required TileLayer options,
|
||||
}) async {
|
||||
return false;
|
||||
}
|
||||
|
||||
/// 获取缓存状态信息
|
||||
static Future<({bool isAvailable, int cacheCount, String cacheSize})> kr_checkCacheStatus() async {
|
||||
return (isAvailable: false, cacheCount: 0, cacheSize: '0 MB');
|
||||
}
|
||||
|
||||
/// 释放资源
|
||||
static void kr_dispose() {
|
||||
_httpClient.close();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user