Il servizio di geocoding nativo di Apple è fornito dallo MapKit framework. L'oggetto importante in questo framework è MKLocalSearch
, che può geocodificare gli indirizzi e restituire più risultati.
MKLocalSearch restituisce 10 risultati in mapItems
di tipo MKMapItem
. Ogni MKMapItem contiene un oggetto MKPlacemark
, che è una sottoclasse di CLPlacemark
.
Ecco un esempio di utilizzo di MKLocalSearch
MapKit:
MKLocalSearchRequest* request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = @"Calgary Tower";
request.region = MKCoordinateRegionMakeWithDistance(loc, kSearchMapBoundingBoxDistanceInMetres, kSearchMapBoundingBoxDistanceInMetres);
MKLocalSearch* search = [[MKLocalSearch alloc] initWithRequest:request];
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
yourArray = response.mapItems; // array of MKMapItems
// .. do you other logic here
}];
fonte
2013-04-22 21:16:04
abbiamo usato il Forward Geaocoder da http://blog.sallarp.com invece di SVGeocoder – johsem
Perché accade questo? Da Apple Docs: in caso di richieste di geocoding in avanti, possono essere restituiti più oggetti segnaposto se le informazioni fornite hanno prodotto più posizioni possibili. – prince
Suppongo che il servizio di geocodifica di Apple sia al momento abbastanza limitato. Mi aspetto che cambi presto. Puoi vedere che Apple si sta solo affrettando ad abbandonare la dipendenza da Google qui. –