集成高德 SDK 并替换所有定位相关的 CoreLocation 与 MapKit

This commit is contained in:
2026-07-07 11:49:22 +08:00
parent 3acbf6315b
commit 8a4a30111c
29 changed files with 748 additions and 240 deletions

View File

@ -0,0 +1,54 @@
//
// LocationProviding.swift
// suixinkan
//
import CoreLocation
import Foundation
///
struct HomeLocationSnapshot: Sendable, Equatable {
let latitude: Double
let longitude: Double
let address: String
}
/// 便 ViewModel mock
protocol LocationProviding: Sendable {
///
func requestSnapshot() async throws -> HomeLocationSnapshot
///
func requestCoordinate() async throws -> CLLocationCoordinate2D
///
func reverseGeocode(latitude: Double, longitude: Double) async -> String
}
///
enum LocationProviderError: LocalizedError, Equatable {
case privacyNotAccepted
case permissionDenied
case locationFailed
var errorDescription: String? {
switch self {
case .privacyNotAccepted:
"请先阅读并同意隐私政策"
case .permissionDenied:
"需要定位权限才能使用此功能"
case .locationFailed:
"定位失败,请稍后重试"
}
}
}
///
enum OrderLocationError: LocalizedError {
case permissionDenied
var errorDescription: String? {
switch self {
case .permissionDenied:
"缺少定位权限,功能无法进行"
}
}
}