Mapbox MGLAnnotations 未在 MapView for Mapbox iOS 上呈现
Mapbox MGLAnnotations not rendering on MapView for Mapbox iOS
我一直在为我的 SwiftUI 应用程序使用 MapBox 进行测试,但我 运行 遇到了我的注释没有出现在我的 MapView 上的问题,即使它们似乎已被添加。我在 updateUIView 上调用的 updateAnnotations 命令的代码是:
private func updateAnnotations() {
if let currentAnnotations = mapView.annotations {
mapView.removeAnnotations(currentAnnotations)
}
for marker in devices.positions {
let annotation = MGLPointAnnotation(title: marker.name, coordinate: marker.coordinate)
mapView.addAnnotation(annotation)
print("ADDED \(annotation)")
print(mapView.annotations)
}
}
devices
是一个 @ObservedObject,包含一个 positions
点数组,带有要绘制的标题和坐标。这段代码的输出是:
ADDED <MGLPointAnnotation: 0x285abc9f0; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>
Optional([<MGLPointAnnotation: 0x2866b7c60; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>])
这对我来说没有意义 - 输出表明注释已创建但未显示在地图上。任何帮助将不胜感激。
您需要在使用 SwiftUI 时传入 MapView - 例如将 updateAnnotations()
更改为 updateAnnotations(_ mapView: MGLMapView)
我一直在为我的 SwiftUI 应用程序使用 MapBox 进行测试,但我 运行 遇到了我的注释没有出现在我的 MapView 上的问题,即使它们似乎已被添加。我在 updateUIView 上调用的 updateAnnotations 命令的代码是:
private func updateAnnotations() {
if let currentAnnotations = mapView.annotations {
mapView.removeAnnotations(currentAnnotations)
}
for marker in devices.positions {
let annotation = MGLPointAnnotation(title: marker.name, coordinate: marker.coordinate)
mapView.addAnnotation(annotation)
print("ADDED \(annotation)")
print(mapView.annotations)
}
}
devices
是一个 @ObservedObject,包含一个 positions
点数组,带有要绘制的标题和坐标。这段代码的输出是:
ADDED <MGLPointAnnotation: 0x285abc9f0; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>
Optional([<MGLPointAnnotation: 0x2866b7c60; title = "Test"; subtitle = (null); coordinate = -36.892800, 174.625000>])
这对我来说没有意义 - 输出表明注释已创建但未显示在地图上。任何帮助将不胜感激。
您需要在使用 SwiftUI 时传入 MapView - 例如将 updateAnnotations()
更改为 updateAnnotations(_ mapView: MGLMapView)