¿Cómo obtener la ubicación actual del iPhone mediante código?
-
20-09-2019 - |
Pregunta
¿Cómo se obtiene la ubicación actual del iPhone mediante un código?Necesito rastrear la ubicación usando GPS.
Solución
Usted está en busca de la API "CoreLocation".
Esto es un tutorial
Otros consejos
Hay (como siempre para la funcionalidad principal) documentación completa en el sitio del desarrollador y puede encontrar este ejemplo útil;
Los puntos clave a recordar son;
1) Una vez que comienza a recibir actualizaciones de ubicación, llegan de forma asincrónica y debe responderlas cuando lleguen.Verifique la precisión y las marcas de tiempo para decidir si desea utilizar la ubicación o no.
2) No olvides dejar de recibir actualizaciones tan pronto como tengas la ubicación que deseas (puede que esta no sea la primera), de lo contrario agotarás la duración de la batería.
3) La primera ubicación que se le devuelve suele ser la ÚLTIMA EN CACHÉ, y el teléfono informará esta ubicación con la misma (posiblemente alta) precisión que tenía cuando obtuvo la solución anterior.Por lo tanto, es posible que obtenga una solución que dice tener una precisión de 10 metros, pero en realidad se recibió ayer cuando estaba a millas de su ubicación actual.El lema de esto es NO OLVIDES VERIFICAR LA MARCA DE TIEMPO: esto te indica cuándo se recibió realmente la corrección de ubicación. A continuación se muestra un ejemplo de cómo comprobar la marca de tiempo..
Espero que ayude.
Esta página en CLLocationManager tiene cinco ejemplos de código fuente
Si sólo necesita para obtener la ubicación actual del dispositivo, utilizando Core Location directamente requiere una buena cantidad de código, ya que debe manejar el retardo hasta que el dispositivo GPS tiene un ajuste preciso de la ubicación actual, que tiene un número de segundos. (El CLLocationManager API parece estar construido para aplicaciones que necesitan actualizaciones de ubicación continuos, como aplicaciones de navegación GPS paso a paso.)
En lugar de utilizar directamente CLLocationManager, sugiero que eche un vistazo al uso de un componente de código abierto como INTULocationManager que se encargará de todo este trabajo para usted y que sea trivialmente sencilla para solicitar una o más peticiones discretas para la ubicación actual del dispositivo.
código completo está aquí abajo
1 mapa de arrastre marco de la importación dar delegado
en la última línea de este código self.yourmapreferencename.setRegion ...
// todo el código aquí
UIKit importación MapKit importación CoreLocation importación clase ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager : CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
if CLLocationManager.locationServicesEnabled()
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last! as CLLocation
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
self.mapView.setRegion(region, animated: true)
}
}
La verdadera solución se puede encontrar aquí. Código Conceptos Z5 iOS Desarrollo fragmentos
Sólo requiere un poco de codificación.
- (IBAction)directions1_click:(id)sender
{
NSString* address = @"118 Your Address., City, State, ZIPCODE";
NSString* currentLocation = @"Current Location";
NSString* url = [NSStringstringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@",[currentLocation stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
UIApplication *app = [UIApplicationsharedApplication];
[app openURL: [NSURL URLWithString: url]];
}