Pourquoi CLGeocoder reverseGeocodeLocation renvoie un repère avec lat/long différent lorsqu'il recherche l'adresse? Contexte: En termes d'un utilisateur "appui long" sur la carte pour laisser tomber une épingle, mais mon code inverse Géocodage pour pouvoir mettre un nom de zone sur la broche, mais le code PIN est tombé dans un autre emplacement (c.-à-d. pas une bonne expérience utilisateur). Donc je cherche un moyen d'utiliser le lat/long que l'utilisateur a effectivement sélectionné, mais il suffit de chercher le nom de l'emplacement.CLGeocoder reverseGeocodeLocation renvoie un repère avec lat/long différent? (exemple de terrain de jeu joint)
Exemple: Avec le code ci-dessous je vois:
- Entrée: -28,7780218895614, 152,978574011267
- SORTIE: -28,864405, 153,0001191
code:
import UIKit
import CoreLocation
import PlaygroundSupport
// Initial Test Co-ordinate
let locInput = CLLocation(latitude: -28.778021889561444, longitude: 152.97857401126666)
print("Input: \(locInput.coordinate.latitude), \(locInput.coordinate.longitude)")
// Initiate Reverse Geocoding
let geocoder: CLGeocoder = CLGeocoder()
print("About to call reverse geocoding function")
geocoder.reverseGeocodeLocation(locInput) { placemarks, error in
guard let placemarks = placemarks else {fatalError("No Placemarks Provided \(error?.localizedDescription)")}
for p in placemarks {
print("OUTPUT: \(p.location!.coordinate.latitude), \(p.location!.coordinate.longitude)")
}
}
// Enable Asynch
PlaygroundPage.current.needsIndefiniteExecution = true
PS. Ou est l'approche dans ce cas pour prendre le repère renvoyé par reverseGeocodeLocation et utiliser la localité, la sublocalité, les chaînes de pays mais pas son emplacement/coordonnée, mais utiliser plutôt la coordonnée de la "presse longue"? – Greg