Ich möchte 2 neue Längengrade und 2 neue Breiten basierend auf einer Koordinate und einer Entfernung in Metern erstellen. Ich möchte einen schönen Begrenzungsrahmen um einen bestimmten Punkt erstellen. Es ist für einen Teil einer Stadt und maximal ± 1500 Meter. Ich denke daher nicht, dass die Krümmung der Erde berücksichtigt werden muss.
Ich habe also 50.0452345
(x) und 4.3242234
(y) und möchte x + 500 Meter, x - 500 Meter, y - 500 Meter, y + 500 Meter wissen
Ich habe viele Algorithmen gefunden, aber fast alle scheinen sich mit dem Abstand zwischen Punkten zu befassen.
algorithm
geolocation
Benjamin Udink zehn Cate
quelle
quelle
Antworten:
Die Anzahl der Kilometer pro Längengrad beträgt ungefähr
Wo
theta
ist der Breitengrad in Grad undr_earth
ist ungefähr 6378 km.Die Anzahl der Kilometer pro Breitengrad ist an allen Standorten ungefähr gleich, ca.
So können Sie tun:
Solange
dx
unddy
klein im Vergleich zum Radius der Erde sind und Sie nicht zu nahe an die Pole kommen.quelle
cos(latitude*180/pi)
Die akzeptierte Antwort ist vollkommen richtig und funktioniert. Ich habe einige Änderungen vorgenommen und mich in diese verwandelt:
Hoffe das hilft auch.
quelle
0.0000089
? Versuche magische Zahlen zu vermeiden, niemand wird das verstehen.Für den Breitengrad tun Sie:
Für die Länge tun:
Die Variable
your_meters
kann einen positiven oder einen negativen Wert enthalten.quelle
Haben Sie ausgecheckt: Wie finde ich den Lat / Long, der x km nördlich eines bestimmten Lat / Long liegt ?
Diese Berechnungen sind bestenfalls ärgerlich, ich habe viele davon gemacht. Die Haversine-Formel wird dein Freund sein.
Einige Referenzen: http://www.movable-type.co.uk/scripts/latlong.html
quelle
Ich musste ungefähr zwei Stunden aufwenden, um die Lösung von @nibot zu erarbeiten. Ich brauchte lediglich eine Methode, um eine Begrenzungsbox zu erstellen, deren Mittelpunkt und Breite / Höhe (oder Radius) in Kilometern angegeben sind:
Ich verstehe die Lösung mathematisch / geografisch nicht. Ich habe die Lösung (durch Versuch und Irrtum) optimiert, um die vier Koordinaten zu erhalten:
Norden:
Osten:
Süden:
Westen:
quelle
Wenn Sie nicht sehr genau sein müssen, dann: Jeder 10000 Meter entspricht ungefähr 0,1 für Breite und Länge. Zum Beispiel möchte ich Standorte 3000 Meter um point_A aus meiner Datenbank laden:
quelle
quelle
quelle