我正在尝试使用从 Core Location 获得的用户位置在 SwiftUI 中初始化我的 MapKit 地图,目前我使用 MapCameraPosition 类型变量初始化我的地图,如何使用 CoreLocation 启动地图。
这几乎是我当前的地图初始化
@State private var position: MapCameraPosition = .region(
MKCoordinateRegion(
center: .monterrey,
span: MKCoordinateSpan(latitudeDelta: 0.001, longitudeDelta: 0.001)
)
)
@State private var locationManager = LocationManager()
private var mapLayer: some View {
Map(position: $position) {
ForEach(vm.filteredMarkers) { marker in
Annotation(marker.name, coordinate: marker.coordinate) {
RecyclingMarker {
selectMarker(marker)
}
}
}
if let userLocation = locationManager.currentLocation {
Annotation("Your Location", coordinate: userLocation) {
Image(systemName: "location.fill")
.foregroundColor(.blue)
.font(.title)
}
}
}
.mapStyle(.standard)
}
我正在尝试将坐标从核心位置提取到 MapCameraPosition 中,但我无法做到这一点。
您可以尝试在视图或地图中添加
.onAppear{...}
,例如:
.onAppear {
if let userLocation = locationManager.currentLocation {
position = .camera(MapCamera(centerCoordinate: userLocation, distance: 400000.0, heading: 0, pitch: 0))
}
}