2017-09-21 4 views
1

Je suis en train d'envoyer une notification lorsque l'utilisateur est de 300 mètres de toute broche de la carte (toutes les broches provenant d'une API)garder trace la distance entre l'emplacement de l'utilisateur et d'autres coordonnées

je calcule la distance ..

currentLocation = CLLocationManager() 
currentLocation!.distance(from: pinLoc) 

-je obtenir le droit à distance, cependant, de garder le suivi de l'emplacement de l'utilisateur (conduite) Je dois mettre le mon code dans la fonction (de didUpdateLocations), qui gardera en boucle pour toujours [Je ne me stopUpdatingLocation () parce que je dois continuer à obtenir l'emplacement de l'utilisateur]

Existe-t-il d'autres moyens de continuer à obtenir l'emplacement de l'utilisateur (coordonnées) en permanence sans avoir à entrer dans une boucle infinie!

J'utilise aussi

mapView.userTrackingMode = .follow 

Pour suivre l'emplacement de l'utilisateur sur la carte.

Merci.

+1

Vous pouvez surveiller la région. Il a quelques limitations mais dépend de votre implémentation peut fonctionner très bien https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html – GIJOW

+0

Voulez-vous dire que je définis chaque broche de la carte comme région, puis suivre l'utilisateur si rejoint cette région? Est-ce que ce sera une bonne structure? – Thamer

+0

Oui et non, vous surveillez chaque région. Ensuite, vous avez la méthode déléguée qui se déclenche lorsque la condition correspond. Vous n'avez pas besoin de suivre l'utilisateur. Vous avez quelques esquisses sur le document – GIJOW

Répondre

0

Vous pouvez utiliser la propriété userLocation de mapView pour continuer à obtenir l'emplacement de l'utilisateur (coordonnées) en permanence.

mapView.userLocation.coordinate