Я новичок в Swift / SwiftUI. На данный момент я использую SwiftUI.
Я хочу отобразить карту с маркером из geo json, эта часть работает.
Но, когда я пытаюсь отобразить свое меню, каждый маркер исчезнет с карты. И если я добавлю «loadGeo Json ()» в «updateUIView ()», мое меню появится, но без анимации.
func loadGeoJson() {
guard let url = URL(string: "http://mysuper.geojson") else {
print("Invalid URL")
return
}
guard let data = try? Data(contentsOf: url) else {
preconditionFailure("Failed to decode GeoJSON file")
}
DispatchQueue.main.async {
try? self.drawShapeCollection(data: data)
}
}
func drawShapeCollection(data: Data) throws {
let iconVelovClose = UIImage(named: "bicycleClose")
let iconVelovOpen = UIImage(named: "bicycleOpen")
guard let style = self.mapView.style else { return }
style.setImage(iconVelovClose!, forName: "velovIconClose")
style.setImage(iconVelovOpen!, forName: "velovIconOpen")
guard let feature = try? MGLShape(data: data, encoding: String.Encoding.utf8.rawValue) as? MGLShapeCollectionFeature else {
fatalError("Could not cast to specified MGLShapeCollectionFeature")
}
let source = MGLShapeSource(identifier: "transit", shape: feature, options: nil)
style.addSource(source)
let velovLayerClose = MGLSymbolStyleLayer(identifier: "stationsClose", source: source)
...
style.addLayer(velovLayerClose)
let velovLayerOpen = MGLSymbolStyleLayer(identifier: "stationsOpen", source: source)
...
style.addLayer(velovLayerOpen)
}
Большое спасибо и извините за мой engli sh