Frage

Wie Sie den aktuellen Standort des iPhone durch Code bekommen? Ich brauche den Standort mithilfe von GPS verfolgen.

War es hilfreich?

Lösung

Sie sind für den "Corelocation" API suchen.

Hier ein Tutorial

Andere Tipps

Es ist (wie immer für Kernfunktionalität) umfassende Dokumentation auf der Entwickler-Website und Sie finden dieses Beispiel nützlich;

Die wichtigsten Punkte zu beachten sind;

1) Sobald Sie Empfangsort Updates starten, kommen sie asynchron und Sie müssen auf sie reagieren, wie und wann sie kommen in. Die Genauigkeit prüfen und Zeitstempel, um zu entscheiden, ob Sie den Speicherort verwenden möchten oder nicht.

2) Vergessen Sie nicht so schnell empfangen Updates zu stoppen, wie Sie den Speicherort haben Sie wollen (dies nicht der erste sein könnte), ansonsten wird entleeren Sie die Lebensdauer der Batterie.

3) Die erste Stelle an Sie zurück ist oft die letzte CACHED ein, und das Telefon melden Sie diesen Ort mit der gleichen (möglicherweise hoch) Genauigkeit es hatte, als er vor das Update bekam. So dass Sie vielleicht ein Update bekommen, dass Ansprüche genau zu 10 Meter zu sein, aber es wurde gestern tatsächlich erhalten, wenn Sie von Ihrem aktuellen Standort Meilen entfernt waren. Das Motto dieser ist nicht, dass der Zeitstempel PRÜFEN VERGESSEN - dies zeigt an, wann die Lage fix tatsächlich empfangen wurde. Hier ist ein Beispiel dafür, wie der Zeitstempel zu überprüfen.

Ich hoffe, das hilft.

diese Seite auf CLLocationManager hat fünf Quellcode-Beispiele

downloaden Sie dieses Beispiel es Ihnen zeigen, aktuelle Standort

Wenn Sie nur den aktuellen Standort des Geräts benötigen zu bekommen, erfordert eine Menge Code direkt Core-Standort verwenden, da Sie die Verzögerung behandeln muss, bis das Gerät die GPS eine genaue fix auf der aktuellen Position hat, die eine Anzahl von Sekunden in Anspruch nimmt. (Die CLLocationManager API erscheint für Anwendungen gebaut werden, die eine kontinuierliche Standortaktualisierungen benötigen, wie Turn-by-Turn-GPS-Navigations-Apps.)

Statt mit CLLocationManager direkt, empfehle ich Ihnen einen Blick auf mit einem Open-Source-Komponente wie INTULocationManager die für Sie all diese Arbeit behandelt und auf Wunsch ein oder mehrere diskrete Anfragen für das Gerät des aktuellen Standorts es trivial einfach machen.

full-Code ist hier unten

1 drag Karte Import Rahmen Geben Delegierten

in letzter Zeile dieses Codes self.yourmapreferencename.setRegion ...

// alle Code hier

Import UIKit Import MapKit Import Corelocation Klasse 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)
}

}

Die wirkliche Lösung ist hier zu finden. Z5 Konzepte iOS Entwicklung Code Snippet

Es erfordert nur ein wenig Codierung.

- (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]];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top