Montrer la position Actuelle et l'Emplacement de mise à Jour dans MKMapView en Swift
Je suis en train d'apprendre comment utiliser la nouvelle Swift langue (seulement Rapide, pas d'Objective-C). Pour le faire, je veux faire un simple point de vue avec une carte (MKMapView
). Je veux trouver et mettre à jour l'emplacement de l'utilisateur (comme dans l'application de cartographie d'Apple).
J'ai essayé, mais rien ne s'est passé:
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()
}
}
}
Pourriez-vous m'aider?
- Simple de passer par ce lien: stackoverflow.com/questions/25449469/...
Vous devez vous connecter pour publier un commentaire.
Vous devez remplacer les
CLLocationManager.didUpdateLocations
(partie de CLLocationManagerDelegate) pour être averti quand l'emplacement manager récupère l'emplacement actuel:REMARQUE: Si votre cible est iOS 8 ou supérieur, vous devez inclure le
NSLocationAlwaysUsageDescription
ouNSLocationWhenInUseUsageDescription
clé dans votre Info.plist pour obtenir les services de localisation pour fonctionner.startUpdatingLocation()
suffisant pour mettre à jour l'emplacement ? REMARQUE: Euh... désolé, mais comment puis-je faire s'il vous plaît ? :s Merci beaucoup !startUpdatingLocation
une fois,didUpdateLocations
est déclenché chaque fois qu'un changement d'emplacement est détecté. Vous pouvez faire ce que vous avez besoin, l'emplacement, c'est à dire de le stocker dans un tableau pour dessiner un tracé sur la carte.NSLocationAlwaysUsageDescription
clé dans mon Info.plist s'il vous plaît ?NSLocationAlwaysUsageDescription
que la clé et le texte que vous souhaitez présenter à l'utilisateur comme valeur (Chaîne de caractères)..last
pour un tableau, j'ai donc utiliséarray[count-1]
100% de travail, des étapes faciles et testé
Bibliothèques d'importation:
définir des délégués:
Prendre variable:
écrire ce code sur viewDidLoad():
Écrire délégué méthode pour la localisation:
N'oubliez pas de définir des autorisations dans info.plist
C'est ressembler à:
Pour swift 3 et XCode 8-je trouver cette réponse:
Tout d'abord, vous devez définir protection de la vie privée de l'info.plist. Insérer la chaîne de NSLocationWhenInUseUsageDescription avec votre description de pourquoi vous voulez obtenir de l'emplacement de l'utilisateur. Par exemple, l'ensemble à cordes "Pour carte en application".
Seconde, utilisez cet exemple de code
Troisième, définissez l'Emplacement de l'Utilisateur drapeau de table de montage séquentiel pour mapView.
MyLocation
est une Swift iOS Démo.
Vous pouvez utiliser cette démo pour les éléments suivants:
Afficher l'emplacement actuel.
Choisir d'autres emplacement: dans ce cas, arrêter le suivi de l'emplacement.
Ajouter une punaise pour une MKMapView(iOS) lors de la toucher.
Pour Swift 2, vous devez modifier les suivantes:
vous devez remplacer les
CLLocationManager.didUpdateLocations
vous devez aussi ajouter le
NSLocationWhenInUseUsageDescription
etNSLocationAlwaysUsageDescription
à votre plist réglageResult
comme valeurDans Swift 4, j'avais utilisé le locationManager fonction de délégué tel que défini ci-dessus ..
.. mais ce qui doit être changé ..
Cela venait de la .. https://github.com/lotfyahmed/MyLocation/blob/master/MyLocation/ViewController.swift - merci!