Pergunta

Como você obtém o local atual do iPhone através do código? Eu preciso rastrear o local usando GPS.

Foi útil?

Solução

Você está procurando a API "CoreLocation".

Aqui está um tutorial

Outras dicas

Existe (como sempre para a funcionalidade principal) documentação abrangente no site do desenvolvedor e você pode encontrar este exemplo útil;

Os pontos -chave a serem lembrados são;

1) Depois de começar a receber atualizações de localização, elas chegam de forma assíncrona e você precisa responder a elas como e quando entrarem. Verifique a precisão e os registros de data e hora para decidir se deseja usar o local ou não.

2) Não se esqueça de parar de receber atualizações assim que você tiver o local desejado (este pode não ser o primeiro), caso contrário, você drenará a duração da bateria.

3) O primeiro local retornado a você costuma ser o último em armazenamento em armazenamento em cache, e o telefone relatará esse local com a mesma precisão (possivelmente alta) que teve quando obteve a correção antes. Portanto, você pode obter uma correção que afirma ser precisa de 10 metros, mas foi realmente recebida ontem quando você estava a quilômetros de distância do seu local atual. O lema disso é não se esquecer de verificar o registro de data e hora - isso diz quando a correção do local foi realmente recebida. Aqui está um exemplo de como verificar o registro de data e hora.

Espero que ajude.

Esta página no CllocationManager tem cinco exemplos de código -fonte

Baixe isso exemplo Isso vai mostrar a você o local atual

Se você só precisar obter o local atual do dispositivo, o uso do local principal requer diretamente uma boa quantidade de código, pois você deve lidar com o atraso até que o GPS do dispositivo tenha uma correção precisa no local atual, que leva vários segundos. (A API do CllocationManager parece ter sido criada para aplicativos que precisam de atualizações contínuas de localização, como aplicativos de navegação GPS de turn-a-turn.)

Em vez de usar o CllocationManager diretamente, sugiro que você dê uma olhada no uso de um Componente de código aberto, como IntulocationManager O que lidará com todo esse trabalho para você e tornará trivialmente simples solicitar uma ou mais solicitações discretas para o local atual do dispositivo.

O código completo está aqui abaixo

1 Drag mapa de importação de importação, dê delegado

na última linha deste código self.yourmapreferenceName.setRegion ...

// Todos o código aqui

Importar Uikit Importar MAPKIT IMNIFICAÇÃO CORLACOLATION VIEWCTROLLER: 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)
}

}

A solução real pode ser encontrada aqui. Z5 conceitos iOS Snippet de código de desenvolvimento

Requer apenas um pouco de codificação.

- (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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top