J'utilise MapKit
pour montrer deux annotations et une distance entre elles. Tout fonctionne bien mais je continue à obtenir cette erreur sur la console. MobileBestalt.c: 1647: Impossible de récupérer les informations de la région Tout le monde sait ce qui le causait? Pourrait-il être une certaine permission dans le .plist
fichier
Voici la sortie de la console complète:
2019-11-10 00:21:41.419108+0100 Post DACH[20420:264466] Metal API Validation Enabled 2019-11-10 00:21:41.567416+0100 Post DACH[20420:264466] libMobileGestalt MobileGestalt.c:1647: Could not retrieve region info
Mon code:
struct MapView: UIViewRepresentable {
var requestLocation: CLLocationCoordinate2D
var destinationLocation: CLLocationCoordinate2D
private let mapView = WrappableMapView()
func makeUIView(context: UIViewRepresentableContext<MapView>) -> MKMapView {
mapView.delegate = mapView
return mapView
}
func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<MapView>) {
let requestAnnotation = MKPointAnnotation()
requestAnnotation.coordinate = requestLocation
requestAnnotation.title = "Package"
uiView.addAnnotation(requestAnnotation)
let destinationAnnotation = MKPointAnnotation()
destinationAnnotation.coordinate = destinationLocation
destinationAnnotation.title = "Destiantion"
uiView.addAnnotation(destinationAnnotation)
let sourcePlacemark = MKPlacemark(coordinate: requestLocation)
let destinationPlacemark = MKPlacemark(coordinate: destinationLocation)
let directionRequest = MKDirections.Request()
directionRequest.source = MKMapItem(placemark: sourcePlacemark)
directionRequest.destination = MKMapItem(placemark: destinationPlacemark)
directionRequest.transportType = .automobile
let directions = MKDirections(request: directionRequest)
directions.calculate { (response, error) in
guard let directionResponse = response else {
if let error = error {
print(error.localizedDescription)
}
return
}
let route = directionResponse.routes[0]
uiView.addOverlay(route.polyline, level: .aboveRoads)
let rect: MKMapRect = route.polyline.boundingMapRect
uiView.setVisibleMapRect(rect, edgePadding: .init(top: 50.0, left: 50.0, bottom: 50.0, right: 50.0), animated: true)
}
}
}
J'ai couru dans le même problème aujourd'hui. Il semble que c'est un problème avec le simulateur. Essayez de l'exécuter dans votre appareil et cela devrait fonctionner.
Essayez ceci: allez au storyboard puis ouvrez la zone de structure.
Ensuite, vous faites glisser (avec CTRL) la carteView exactement sur le symbole ViewController (symbole jaune rond) et vous choisissez le délégué.