Wiem z dokumentacji możemy znaleźć odległość między dwoma CLLocation
punktów za pomocą funkcji, distanceFromLocation:
. Ale moim problemem jest to, że nie mam typu danych CLLocation ze mną, mam punkty CLLocationCoordinate2D. Jak więc znaleźć odległość między dwoma punktami CLLocationCoordinate2D? Widziałem posta post, ale nie było dla mnie pomocne.Znajdowanie odległości między CLLocationCoordinate2D punktów
Odpowiedz
Należy utworzyć obiekt CLLocation stosując
- (id)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude;
Teraz używając go można znaleźć dystans.
Z kodem CLLocationDistance distance = [aCLLocationA distanceFromLocation: aCLLocationB]; // odległość jest dwukrotnie reprezentująca odległość w metrach (Źródło - http://stackoverflow.com/a/10432069/1364174) –
Nie ma potrzeby tworzenia CLLocation dla uzyskania odległości między punktami. Proszę spojrzeć na moją odpowiedź na dolnym –
Swift 4:
extension CLLocation {
/// Get distance between two points
///
/// - Parameters:
/// - from: first point
/// - to: second point
/// - Returns: the distance in meters
class func distance(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> CLLocationDistance {
let from = CLLocation(latitude: from.latitude, longitude: from.longitude)
let to = CLLocation(latitude: to.latitude, longitude: to.longitude)
return from.distance(to)
}
}
Ale myślę, że więcej tak: przedłużacza CLLocationCoordinate2D { // W meteres func odległość (# Aby: CLLocationCoordinate2D) -> CLLocationDistance { let spośród = CLLocation (szerokość: self.latitude, Długość: self.longitude) let do = CLLocation (szerokość, długość: to.latitude: to.longitude) powrót from.distanceFromLocation (to) } } – kwerle
Jeśli to jest ok, aby uzyskać odległość w metrach pomiędzy punktami, a następnie
CLLocationCoordinate2D coordinate1 = <some value>
CLLocationCoordinate2D coordinate2 = <some value>
…
MKMapPoint point1 = MKMapPointForCoordinate(coordinate1);
MKMapPoint point2 = MKMapPointForCoordinate(coordinate2);
CLLocationDistance distance = MKMetersBetweenMapPoints(point1, point2);
powróci odległość między dwoma punktami. Nie ma potrzeby tworzenia CLLocation
przez podaną CLLocationCoordinate2D
. Te definicje są dostępne, ponieważ iOS 4.0
działa dobrze dla mnie – VBaarathi
let point1 = MKMapPointForCoordinate(myLocation)
let point2 = MKMapPointForCoordinate(friendLocation)
let distance = MKMetersBetweenMapPoints(point1, point2)/1000
let distanceStr = NSString(format: "%.3f", distance)
Prosta wersja odpowiedzi Valleriego. Podziel przez 1000, aby uzyskać KM, a następnie konwersję na ciąg.
nie pracuje dla szybkiej 3. –
Swift4: połączeniu powyżej myśli
extension CLLocationCoordinate2D {
//distance in meters, as explained in CLLoactionDistance definition
func distance(from: CLLocationCoordinate2D) -> CLLocationDistance {
let destination=CLLocation(latitude:from.latitude,longitude:from.longitude)
return CLLocation(latitude: latitude, longitude: longitude).distance(from: destination)
}
}
- 1. Znajdowanie współrzędnych punktów z macierzy odległości
- 2. Znajdowanie maksymalnej odległości między (x, y) współrzędnymi
- 3. PostGIS: Znajdowanie punktów w określonym promieniu z innych punktów
- 4. Obliczanie odległości wszystkich punktów w regionie między sobą
- 5. Algorytm minimalizacji odległości odległości między współrzędnymi
- 6. wyznaczania punktów z zestawem par odległości
- 7. Znajdowanie punktów na krzywej Beziera na podstawie odległości od innego punktu
- 8. Usunięcie odległości między słowami
- 9. Znajdowanie punktów odstających od matplotlib: boxplot
- 10. Znajdowanie środka obrotu dla zestawu punktów
- 11. Zmniejszanie odległości między dwoma boxplots
- 12. Edycja odległości między dwoma wykresami
- 13. Znajdowanie różnic między ciągami
- 14. Znajdowanie wszystkich najkrótszych ścieżek i odległości za pomocą Floyd-Warshall
- 15. Znajdowanie zależności między plikami Makefile
- 16. SQL: znajdowanie różnic między wierszami
- 17. Filtruj PHAssetKolekcje w promieniu CLLocationCoordinate2d
- 18. MySQL MIĘDZY bez punktów końcowych
- 19. utworzyć CLLocationCoordinate2D z tablicy
- 20. Kodowanie obiektu CLLocationcoordinate2D
- 21. Znajdowanie elementu najbliżej klikniętego punktu
- 22. Obliczanie podpisanej odległości między punktem i prostokątem
- 23. Wybór najkrótszej odległości między parami elementów
- 24. Algorytm obliczania odległości między 2 punktami trójwymiarowymi?
- 25. Obliczanie odległości między dwoma lokalizacjami geograficznymi
- 26. Obliczanie odległości między unikatowymi regionami tablic Pythona?
- 27. Obliczanie odległości między kodami pocztowymi w PHP
- 28. Pomiar odległości między dwoma punktami Lat/Lng
- 29. Najszybszy sposób obliczenia odległości między poszczególnymi punktami w pythonie
- 30. Znajdowanie centrum klastra
Odległość obliczenia są rzeczywiście dość trudne. Powinieneś naprawdę rzucić okiem na CLLocation. –
czy masz lat i długo, a następnie utworzyć cllocation, a następnie użyj CLLocationDistance metrów = [newLocation distanceFromLocation: oldLocation]; –
zobacz poniżej: [distanceFromLocation - obliczanie odległości pomiędzy dwoma punktami] [1] [1]: http://stackoverflow.com/questions/3905896/distancefromlocation-calculate-distance-between-two-points – webmastx