Zeige den aktuellen Standort und aktualisiere den Standort in MKMapView in Swift
Bin ich lernen, wie man die neue Swift-Sprache (nur Swift, keine Objective-C). Es zu tun, möchte ich eine einfache Ansicht mit einer Karte (MKMapView). Ich möchte zu finden und aktualisieren den Standort der user (wie in der Apple-Map-app).
Ich habe versucht, aber nichts passiert:
import MapKit
import CoreLocation
class MapView : UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var map: MKMapView!
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
if (CLLocationManager.locationServicesEnabled())
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}
}
Könnten Sie mir bitte helfen?
InformationsquelleAutor der Frage PMIW | 2014-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie überschreiben
CLLocationManager.didUpdateLocations
(Teil CLLocationManagerDelegate), um benachrichtigt zu werden, wenn die location-manager ruft den aktuellen Speicherort:HINWEIS: Wenn Ihr Ziel ist iOS 8 oder höher verwenden, müssen Sie die
NSLocationAlwaysUsageDescription
oderNSLocationWhenInUseUsageDescription
key in der Info.plist, um die standortdienste zu arbeiten.InformationsquelleAutor der Antwort zisoft
Für swift 3 und XCode 8 finde ich diese Antwort:
Zuerst müssen Sie festlegen Privatsphäre in info.plist. Insert-Zeichenfolge NSLocationWhenInUseUsageDescription mit Ihrer Beschreibung, warum Sie wünschen, erhalten Sie den Standort des users. Zum Beispiel, string "Für die anzeigen in der Anwendung".
Zweiten, Verwendung dieses code-Beispiel
Dritte, Benutzer-Lage-flag im storyboard für die mapView.
InformationsquelleAutor der Antwort Evgeny Karev
100% arbeiten, einfache Schritte und getestet
Bibliotheken importieren:
set Delegierten:
Nehmen variable:
schreiben Sie diesen code auf viewDidLoad():
selbst.locationManager.requestAlwaysAuthorization()
Schreiben delegate-Methode für die Lage:
Nicht vergessen, um Erlaubnis in info.plist
Es Aussehen:
InformationsquelleAutor der Antwort Mr.Javed Multani
MyLocation
ist ein Swift-iOS-Demo.
Können Sie diese demo für die folgenden:
Zeigen den aktuellen Standort an.
Wählen Sie anderen Speicherort: in diesem Fall stoppen Sie die Verfolgung der Lage.
Fügen Sie einen push-pin in eine MKMapView(iOS), wenn Sie Sie berühren.
InformationsquelleAutor der Antwort Ahmed Lotfy
For Swift 2, sollten Sie es folgendermaßen ändern:
InformationsquelleAutor der Antwort Mark
müssen Sie überschreiben
CLLocationManager.didUpdateLocations
haben Sie auch hinzufügen
NSLocationWhenInUseUsageDescription
undNSLocationAlwaysUsageDescription
zu Ihrem plist EinstellungResult
als WertInformationsquelleAutor der Antwort Milad Masoodi
Swift 4, ich hatte den locationManager delegieren-Funktion wie oben definiert ..
.. aber das musste geändert werden ..
Diese kam von .. https://github.com/lotfyahmed/MyLocation/blob/master/MyLocation/ViewController.swift - vielen Dank!
InformationsquelleAutor der Antwort Tybion