2016-07-02 20 views
0

I Abstand zwischen 2 Standorten am Abholen:CLLocation Diskrepanz zwischen Strecken in App & Google Maps

  1. Von Google Maps: Entfernung = 1,5 KM (ca.) (richtig)
  2. Von App mit CLLocation: Entfernung = 0,83 KM (ca.) (nicht korrekt)

Standort-Koordinaten sind:

Aktueller Standort: 19.0174941,72.8557548 Destination Location: 19.0205907,72.8540556

Unten ist der Code, den ich den Abstand berechnen bin mit:

CLLocation *destination = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longitude doubleValue]]; 
CLLocationDistance distance = [destination distanceFromLocation:currentLocation]/1000.0; 

ich nicht in der Lage bin zu verstehen, warum es eine solche Differenz in beiden Ansätzen. Kann mir jemand helfen, wie ich die gleiche Entfernung von beiden Seiten bekomme?

Antwort

0

Google Karte mit Google SDK gibt Ihnen die tatsächliche Straßenentfernung, während CLLocation Ihnen die Entfernung zwischen zwei Koordinaten gibt, wenn Sie eine gerade Linie betrachten. Also da ist dieser Unterschied.

Bitte überprüfen Sie Apple Docs here.

Diese Methode misst den Abstand zwischen den beiden Standorten, indem sie eine Linie zwischen ihnen zeichnet, die der Krümmung der Erde folgt. Der sich ergebende Bogen ist eine glatte Kurve und berücksichtigt keine spezifischen Höhenänderungen zwischen den beiden Standorten.

+0

Das bedeutet, dass wir mit CLLocation Manager niemals die genaue Entfernung berechnen können? – iYoung

+0

Nein, mit CLLocation Manager können wir keine Straßenentfernung erreichen. –

+0

@iYoung Bitte sehen Sie, was Apple Docs zu diesem Thema sagt, ich habe die Antwort aktualisiert. –