2009-06-30 9 views
8

Ich habe es geschafft, zwei Funktionen zu bekommen, um Entfernungen zwischen zwei Punkten auf einer Google-Karte zu berechnen. Eine, die ich von verschiedenen Stellen im Web und die andere mit der GLatLng.distanceFrom-Methode in der Google Maps-API erfasst (gestohlen) habe.Berechnet Google Maps die falsche Entfernung?

Der Grund, warum ich zwei Funktionen bin mit, weil ich etwas Merkwürdiges über die Ergebnisse bemerkte ich Formular Google war immer, zum Beispiel der Abstand zwischen Lands End und John O Groats in Großbritannien zurückgeführt wird als

    folgt
  • Meine Funktion: 985km
  • Google: 986km
  • Wikipedia: 970km

die 15/16km Differenz aus dem Wikipedia-Ergebnis, weil Google einen Standort resu zurückkehren Es ist etwa 15 km vom eigentlichen John O Groats entfernt. Das ist in etwa richtig.

Also testete ich die Entfernung zwischen London und Mailand und bekam

  • Meine Funktion: 1232km
  • Google: 1234km
  • Wolfram Alpha: 958.5km

So jemand ist mehr als 250km hinaus. Dann habe ich versucht London nach New York

  • Meine Funktion: 8244km
  • Google: 8254km
  • Wolfram Alpha: 5581km

Im Allgemeinen ist die Entfernung zwischen London und New York gedacht wird, um zu sein 5560km. Aber jetzt scheinen sowohl meine Funktion als auch die Google-Funktion ganz daneben zu liegen.

Die Funktion, die ich verwende can be found here. Meine Entschuldigung für den Autor, dass ich nicht auf die ursprüngliche Seite verlinke, aber das Layout ist wirklich verwirrend. Ich benutze die Funktion distHaversine.

Ich muss zugeben, die Mathematik ist weit über mein Komfortniveau hinaus, aber ich verstehe das Wesentliche, und wie ich es verstehe, verwendet Google auch die Haversine-Methode. Ich verstehe auch, dass es um etwa 0,3% abweichen kann, aber das würde nicht für die Unterschiede verantwortlich sein, die ich sehe. Und ich bin außerdem verwirrt darüber, dass es manchmal richtig und manchmal weit entfernt von den üblichen Abständen zwischen den Orten ist. Es scheint, je größer die Entfernung ist, desto mehr ist es entfernt.

Also wer ist falsch. Google und die Funktion, die ich verwende, oder alle anderen?

+3

Wenn ich manuell die Breiten-/Längenkoordinaten für London und New York auf der Quellsite eingeben (http://www.movable-type.co.uk/scripts/latlong.html), gibt es die richtige Entfernung von ungefähr 5560km, können Sie die Koordinaten bestätigen? – Peter

+0

London lat1: -0.1262362, lon1: 51.5001524 New York lat2: -73.986951, lon2: 40.756054 – gargantuan

+1

Oh Schatz. Es scheint, dass ich meine Lattitude und Longditudes durcheinander gebracht habe. Peter, seit du auf die offensichtliche Lösung hingewiesen hast, die es wäre, sie mit dem Werkzeug Beweglicher Typ zu testen, kannst du die Fragen beantworten und ich werde die Antwort akzeptieren. – gargantuan

Antwort

3

Wie sich herausstellte, hatte ich die Breiten- und Längenparameter falsch herum (Luft, Wasser,?).

1

Es sei denn, ich dies Mißverständnis:

Könnte die Abweichung von der Tatsache ausgehen, dass Google Maps Entfernung berechnet, die Sie fahren und nicht ‚in der Luftlinie‘?

+0

Siehe den Kommentar von gargantaun in der Ursprungsfrage. Problem ist gelöst, aber niemand gab eine "Antwort" –

3

Google Maps berechnet nicht die kürzeste gerade Strecke - es geht durch Straßen und

Verwandte Themen