2016-12-18 5 views
1

Je veux obtenir une adresse plus précise (de coordonnées) que la plage d'adresses de la fonctionGéocodage inverse Lieu: plus de précision que la plage

geoCoder.reverseGeocodeLocation(location, completionHandler: {}) 

Dans le guide de l'API Google Maps (https://developers.google.com/maps/documentation/geocoding/intro#Results) ils précisent que je peut changer location_type afin d'obtenir une adresse plus précise. Comment puis-je spécifier ces paramètres? Ceci est mon code:

let geoCoder = CLGeocoder() 
let location = CLLocation(latitude: center.latitude, longitude: center.longitude) 
geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) -> Void in ... 
    }) 

Répondre

1

Si vous voulez utiliser le Google Maps API, comme vous LIÉ, vous devez être former une requête HTTP à l'API (avec vous API Key avez acquis de Google). Le reverseGeocodeLocation utilise l'API de la carte d'Apple, et est certainement ne va pas être en mesure d'accepter le paramètre de Google location_type. La requête HTTP de base que vous allez vouloir faire est donc de la forme:

let url:String = "https://maps.googleapis.com/maps/api/geocode/json?latlng=\(center.latitude),\(center.longitude)&location_type=\(DESIRED_LOCATION_TYPE)&key=\(YOUR_API_KEY)" 

À partir du lien que vous avez spécifié, le DESIRED_LOCATION_TYPE peut être:

« TOITURE » restreint les résultats aux adresses pour lesquelles nous avons informations d'emplacement précises jusqu'à la précision de l'adresse de la rue. "RANGE_INTERPOLATED" limite les résultats à ceux qui reflètent une approximation (généralement sur une route) interpolée entre deux points précis (tels que des intersections). Une plage interpolée généralement indique que les géocodes de toit ne sont pas disponibles pour une adresse de rue. "GEOMETRIC_CENTER" restreint les résultats aux centres géométriques d'un emplacement tel qu'une polyligne (par exemple, une rue) ou un polygone (région).

« APPROXIMATIVE » restreint les résultats à ceux qui sont caractérisés comme approximative.