Pregunta

¿Cómo se obtiene la ubicación actual del iPhone mediante un código?Necesito rastrear la ubicación usando GPS.

¿Fue útil?

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

le mostrará ubicación actual

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]];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top