saber obtener mis longitud lector latitud ingresar google geograficas earth coordenadas como buscar objective-c swift mkmapview geocoding

objective c - obtener - ¿Cómo puedo trazar direcciones en Swift, convirtiendo la dirección en coordenadas de longitud y latitud?



lector de coordenadas (3)

En Objective-C, este código funciona bien para trazar una dirección y encuentra las coordenadas de longitud y latitud:

NSString *address = @"1 Infinite Loop, CA, USA"; CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder geocodeAddressString:address completionHandler:^(NSArray* placemarks, NSError* error){ // Check for returned placemarks if (placemarks && placemarks.count > 0) { CLPlacemark *topResult = [placemarks objectAtIndex:0]; // Create a MLPlacemark and add it to the map view MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:topResult]; [self.mapView addAnnotation:placemark]; [placemark release]; } [geocoder release]; }];

¡He estado buscando por días sobre cómo hacer esto con Swift? ¿Podría alguien apuntarme en la dirección correcta? ¿Podría explicar si un usuario necesita una conexión a Internet para que esto funcione? Lo siento si estas preguntas suenan un poco básicas, pero soy bastante nuevo en esto y aprendo todos los días.

Entiendo que tengo que usar este código, pero no puedo encontrar una manera de implementarlo

func geocodeAddressString(_ addressString: String!, completionHandler completionHandler: CLGeocodeCompletionHandler!)


Intenta algo como

var address = "1 Infinite Loop, CA, USA" var geocoder = CLGeocoder() geocoder.geocodeAddressString(address, {(placemarks: [AnyObject]!, error: NSError!) -> Void in if let placemark = placemarks?[0] as? CLPlacemark { self.mapView.addAnnotation(MKPlacemark(placemark: placemark)) } })


XCode 9 y Swift 3:

import CoreLocation let address = "1 Infinite Loop, CA, USA" let geocoder = CLGeocoder() geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in if((error) != nil){ print("Error", error) } if let placemark = placemarks?.first { let coordinates:CLLocationCoordinate2D = placemark.location!.coordinate } })


var address = "1 Infinite Loop, CA, USA" var geocoder = CLGeocoder() geocoder.geocodeAddressString(address) { if let placemarks = $0 { println(placemarks) } else { println($1) } }