Wie die aktuelle Position des iPhone durch Code zu bekommen?
-
20-09-2019 - |
Frage
Wie Sie den aktuellen Standort des iPhone durch Code bekommen? Ich brauche den Standort mithilfe von GPS verfolgen.
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]];
}