Rex*_*xha 6 ios swift swiftui ios14 xcode12
我决定从将 MKMapView 包装到 UIViewRepresentable 中切换到Map()SwiftUI 中的新包装。
我能够MKMapRect在 中正确显示 a Map(),但无法MKPointAnnotation在那里显示 2。另外,我在这些注释之间的路线没有显示
它要求我提供一个RandomAccessCollection和一个(Identifiable) -> MapAnnotationProtocol>,但我不知道该放什么。
知道我应该放什么吗(Identifiable) -> MapAnnotationProtocol?
import SwiftUI
import MapKit
extension MKPointAnnotation: Identifiable { }
struct ItemView: View {
@ObservedObject var itemViewModel: ItemViewModel
@State var coll = [MKPointAnnotation]()
func onAppear() {
let requestAnnotation = MKPointAnnotation()
requestAnnotation.coordinate = CLLocationCoordinate2D(latitude: 46.2004781, longitude: 6.1346497)
requestAnnotation.title = "Package"
let destinationAnnotation = MKPointAnnotation()
destinationAnnotation.coordinate = CLLocationCoordinate2D(latitude: 47.1420446, longitude: 9.5204032)
destinationAnnotation.title = "Destination"
coll.append(requestAnnotation)
coll.append(destinationAnnotation)
}
var body: some View {
VStack {
if let mapRect = itemViewModel.route?.polyline.boundingMapRect {
Map(mapRect: .constant(mapRect), annotationItems: coll) { point in
MapAnnotation(coordinate: point.coordinate) {
Text(point.title ?? "")
}
}
}
}
.onAppear(perform: self.onAppear)
}
}
Run Code Online (Sandbox Code Playgroud)
它应该如下所示(由于提供的快照中缺少依赖项而未测试)
Map(mapRect: .constant(mapRect), annotationItems: coll) { point in
MapAnnotation(coordinate: point.coordinate) {
Text(point.title ?? "")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5294 次 |
| 最近记录: |