|
|
@@ -12,14 +12,6 @@ import CoreLocation
|
|
|
import SwiftUI
|
|
|
import Combine
|
|
|
|
|
|
-private let coordinates: [CLLocationCoordinate2D] = [
|
|
|
- CLLocationCoordinate2D(latitude: 39.90333, longitude: 116.39167), // 北京
|
|
|
- CLLocationCoordinate2D(latitude: 31.23170, longitude: 121.47264), // 上海
|
|
|
- CLLocationCoordinate2D(latitude: 22.54554, longitude: 114.05786), // 深圳
|
|
|
- CLLocationCoordinate2D(latitude: 23.12911, longitude: 113.26437), // 广州
|
|
|
- CLLocationCoordinate2D(latitude: 30.59276, longitude: 114.30525), // 武汉
|
|
|
-]
|
|
|
-
|
|
|
class MapViewModel: NSObject, ObservableObject, MapCapability {
|
|
|
|
|
|
var paramsDecodeError: FlutterError? = FlutterError(code: "InvalidArguments", message: "Invalid arguments", details: nil)
|
|
|
@@ -28,9 +20,6 @@ class MapViewModel: NSObject, ObservableObject, MapCapability {
|
|
|
|
|
|
@Published var currentRegion: MKCoordinateRegion?
|
|
|
|
|
|
- // 记录用户位置
|
|
|
- @Published var userLocation: CLLocationCoordinate2D?
|
|
|
-
|
|
|
// 地图Marker
|
|
|
@Published var markers: [ATMapMarker] = []
|
|
|
|
|
|
@@ -80,18 +69,16 @@ class MapViewModel: NSObject, ObservableObject, MapCapability {
|
|
|
}
|
|
|
|
|
|
// 处理地图替换所有Marker
|
|
|
- func handleMapReplaceAllMarkers(args: [String: Any]?, result: @escaping FlutterResult) {
|
|
|
+ func handleMapReplaceAllMarkers(args: [[String: Any]]?, result: @escaping FlutterResult) {
|
|
|
defer {
|
|
|
result(nil)
|
|
|
}
|
|
|
- guard let args = args, let markers = args["markers"] as? [[String: Any]] else {
|
|
|
+ guard let args = args, let markers = [ATMapMarker].fromJson(json: args) else {
|
|
|
result(paramsDecodeError)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- let mapMarkers = markers.compactMap({ ATMapMarker.fromJson(json: $0) })
|
|
|
-
|
|
|
- self.markers = mapMarkers
|
|
|
+ self.markers = markers
|
|
|
}
|
|
|
|
|
|
// 处理Marker点击事件
|