2017-05-31 1 views
-2

Ich habe eine Bezeichnung in meinem DetailView Ich möchte Abstand von der aktuellen Benutzerposition (wird aktualisiert, wenn Benutzer bewegt) zu einer bestimmten Anmerkung.
Und zeigen den Abstand in diesem Label
Z. B: „3,6 km von Ihrem Standort“So berechnen Sie die Entfernung von Benutzerstandort zu Annotation und zeigen sie in einem Label

+0

Mögliche Duplikat von [Wie finden Sie Abstand zwischen den Koordinaten?] (Https://stackoverflow.com/questions/33304340/how-to-find-out-distance-between-coordinates) –

Antwort

0

Ihre Anmerkung wird eine Standort-Eigenschaft. Zwei Arbeiten aus dem Abstand zwischen den Punkten -

lassen distanceInMeters = coordinateOne.distance (aus: coordinateTwo)

Sie diesem Link für weitere Informationen lesen können -

How to find out distance between coordinates?

1

Ich empfehle Erweiterungen . Nehmen wir an, Sie haben Ihre eigene Klasse für Annotationen (wenn Sie dies nicht tun, verwenden Sie einfach MKAnnotation anstelle von "YourAnnotationClass") - Sie möchten es mit der berechneten Eigenschaft distanceToUsersCurrentLocation erweitern. Um auf den aktuellen Standort des Benutzers zugreifen zu können, müssen Sie CoreLocation importieren.

import UIKit 
import CoreLocation 

public class ViewController { //class where you need to set the label's text 

    //your code here 

    } 
} 

extension YouAnnotationClass { 
    var distanceToUsersCurrentLocation: Double { 
     let manager = CLLocationManager() //location manager for user's current location 
     let destinationCoordinates = CLLocation(latitude: self.latitude, longitude: self.longitude) //coordinates for destinastion 
     let selfCoordinates = CLLocation(latitude: (manager.location?.coordinate.latitude)!, longitude: (manager.location?.coordinate.longitude)!) //user's location 
     return selfCoordinates.distance(from: destinationCoordinates) //return distance in **meters** 
} 

Jedesmal, wenn man Zugriff auf distanceToUsersCurrentLocation innerhalb dieser Klasse werden Sie Abstand in Metern erhalten. Ich hoffe, dass dies mit Ihrem Problem geholfen

Verwandte Themen