Einfache Berechnungen für das arbeiten mit lat/lon und km-Distanz?
Ist es eine einfache Rechnung, die ich tun kann, das wird konvertieren Sie km in einer Bedeutung, die ich hinzufügen können, um einen lat oder lon-float-Berechnung einer bounding-box für die Suche? Es muss nicht ganz richtig.
Zum Beispiel: wenn ich angesichts einer lat/lon-London, England (51.5001524, -0.1262362) und ich wollte berechnen, was der lat wäre 25km östlich/westlich von diesem Punkt, und was die lon-wäre 25km nördlich/südlich von diesem Punkt, was würde ich tun müssen, um zu konvertieren, die 25km in eine Dezimalzahl zu addieren, um die Werte oben?
Ich bin auf der Suche nach einer Allgemeinen Regel-of-Daumen, ie: 1km == +/- 0.XXX
Edit:
Meine ursprüngliche Suche nach "lat-lon" kamen nicht wieder zu diesem Ergebnis:
Wie die Berechnung der bounding box für einen bestimmten lat/lng Lage?
Akzeptierte Antwort scheint ausreichend für meine Anforderungen.
- Möglich, Duplikat der Wie die Berechnung der bounding box für einen bestimmten lat/lng Standort?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Ungefähre Konvertierungen sind:
Dies nicht ganz korrekt für die Erde polar flattening - denn das würden Sie wahrscheinlich wollen eine kompliziertere Formel mit dem WGS84 Referenz-ellipsoid (das Modell verwendet für GPS). Aber der Fehler ist wahrscheinlich vernachlässigbar für Ihre Zwecke.
Quelle: http://en.wikipedia.org/wiki/Latitude
Vorsicht: Werden Sie sich bewusst, dass latlong Koordinaten werden in Grad ausgedrückt, während die
cos
Funktion in den meisten (allen?) Sprachen in der Regel akzeptiert Bogenmaß, daher ist eine Grad in Bogenmaß Umrechnung benötigt.cos(0°) = 1
=> Daher gibt es keine Korrektur-Faktor angewendet wird dabei die Berechnung am äquator. Die Längengrade sind die breitesten die es gibt.cos(90°) = 0
=> An den Polen der Längengrade treffen sich in einem Punkt. Es gibt keine Distanz berechnet werden.Longitude: 1 deg = 111.320*cos(latitude) km
für Berlin (Breite~=52.504) dies ergibt:-68.92914538114779
.... Ein negativer Wert. (Berechnet durch ausführen dieser Anweisung in Java:111.320 * (Math.cos(52.504))
)Wenn Sie mit Java, Javascript oder PHP, dann gibt es eine Bibliothek, werden diese Berechnungen genau, mit einigen amüsant-kompliziert (aber immer noch schnell) Trigonometrie:
http://www.jstott.me.uk/jcoord/
http://www.jstott.me.uk/jcoord/ - diese Bibliothek verwenden,
Interessant, dass ich didn ' T sehen eine Erwähnung der UTM-Koordinaten.
https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system.
Zumindest, wenn Sie hinzufügen möchten, km in die gleiche zone, es sollte unkompliziert sein (in Python : https://pypi.org/project/utm/ )
utm.from_latlon und utm.to_latlon.
Dank Jim Lewis für seine tolle Antwort und ich möchte zeigen, diese Lösung durch meine Funktion in Swift:
In dieser Funktion konvertieren Entfernung benutze ich folgende Formeln: