2017-09-21 3 views
1

Ich versuche Benachrichtigung zu senden, wenn der Benutzer 300 Meter von jeder Karte Stift (alle Stifte von einem API kommen)zu verfolgen, wobei der Abstand zwischen dem Standort des Nutzers und anderen Koordinaten

Ich berechne den Abstand von ..

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

ich die Distanz richtig, aber zu halten, die Position des Benutzers Tracking (Driving) muß ich in der (didUpdateLocations) gibt den meinen Code setzen, die für immer Looping halten [ich benutze keine stopUpdatingLocation () weil ich den Standort des Benutzers erhalten muss]

Gibt es noch andere Möglichkeiten, den Standort (Koordinaten) des Benutzers konstant zu halten, ohne in die Endlosschleife zu gehen!

Ich benutze auch

mapView.userTrackingMode = .follow 

den Standort des Benutzers zu verfolgen auf der Karte.

Vielen Dank.

+1

Sie können die Region überwachen. Es hat einige Einschränkungen, aber hängt davon ab, Ihre Implementierung kann gut funktionieren https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/RegionMonitoring/RegionMonitoring.html – GIJOW

+0

Meinst du ich setze jeden map pin als a Region, dann den Benutzer verfolgen, wenn dieser Region beigetreten ist? Wird das eine richtige Struktur sein? – Thamer

+0

Ja und nein, Sie überwachen jede Region. Dann haben Sie die Delegate-Methode, die ausgelöst wird, wenn die Bedingung übereinstimmt. Sie müssen den Benutzer nicht verfolgen. Sie haben einige Skizzen auf dem Dokument – GIJOW

Antwort

0

Sie können die userLocation-Eigenschaft von mapView verwenden, um den Standort (Koordinaten) des Benutzers konstant zu erhalten.

mapView.userLocation.coordinate 
Verwandte Themen