[PYTHON] Finden Sie den Wegpunkt aus dem Breiten- und Längengrad (unter Berücksichtigung der Rundheit der Erde).

Den linearen Abstand auf der Erde gefunden Übrigens habe ich eine Weile damit gespielt.

from math import sin, cos, acos, asin, atan2, radians, degrees

def latlng_to_xyz(lat, lng):
    rlat, rlng = radians(lat), radians(lng)
    coslat = cos(rlat)
    return coslat*cos(rlng), coslat*sin(rlng), sin(rlat)

def xyz_to_latlng(x, y, z):
    rlat = asin(z)
    coslat = cos(rlat)
    return degrees(rlat), degrees(atan2(y/coslat, x/coslat))

def halfway_on_sphere(pos0, pos1, z=0.5):
    xyz0, xyz1 = latlng_to_xyz(*pos0), latlng_to_xyz(*pos1)

    theta = acos(sum(x * y for x, y in zip(xyz0, xyz1)))
    sin_th = sin(theta)

    v0 = sin(theta * (1-z)) / sin_th
    v1 = sin(theta * z) / sin_th

    return xyz_to_latlng(*(x * v0 + y * v1 for x, y in zip(xyz0, xyz1)))

Tokyo = 35.68, 139.77
Atlanta = 33.755, -84.39
print(halfway_on_sphere(Tokyo, Atlanta)) # (61.51, -150.67)

Ich fand heraus, dass der genaue Mittelpunkt zwischen Tokio und Atlanta etwa 40 km nordwestlich der Stadt Ankalesi lag.

Wie Sie sich vorstellen können, kann das dritte Argument der Funktion "halfway_on_sphere" verwendet werden, um einen beliebigen internen Teilungspunkt zu berechnen. Sie können die globale Route zeichnen, indem Sie die Koordinaten in kleinen Schritten ermitteln. Ich denke, dass der äußere Teilungspunkt wahrscheinlich problemlos berechnet werden kann.

Recommended Posts

Finden Sie den Wegpunkt aus dem Breiten- und Längengrad (unter Berücksichtigung der Rundheit der Erde).
Finden Sie die Entfernung von Breite und Länge (unter Berücksichtigung der Rundheit der Erde).
Holen Sie sich die Adresse von Längen- und Breitengrad
So erhalten Sie den Pixelwert des Punkts aus dem Satellitenbild, indem Sie den Breiten- und Längengrad angeben
Laden Sie die Kacheln des Geographical Institute von Längen- und Breitengrad herunter
Informationen zum Standort (Breiten- und Längengrad) erhalten Sie von der Adresse. Geocode in Python ~ Geocoder und Pydams ~
Geben Sie Breiten- und Längengradpunktsequenzdaten an und versuchen Sie, die Straße anhand von OpenStreetMap-Daten zu identifizieren
Finden Sie die "Mindestpunktzahl" aus der "Durchschnittspunktzahl der Prüflinge", der "Durchschnittspunktzahl der erfolgreichen Bewerber" und der "Vergrößerung" der Aufnahmeprüfung
Finden Sie den kritischen Pfad von PERT mithilfe der Breitenprioritätssuche und der Tiefenprioritätssuche
Informieren Sie sich über das Alter und die Anzahl der Gewinne von Präfekturgouverneuren im ganzen Land
Erfassen Sie GeneratorExit und erkennen Sie das Ende der Iteration von der Generatorseite
Finden Sie den Schnittpunkt eines Kreises und einer geraden Linie (Sympymatrix)
Existenz aus Sicht von Python
Visualisierung von Breiten- / Längenkoordinatendaten (unter der Annahme meteorologischer Daten) unter Verwendung von Cartopy und Matplotlib
[GPS] Berechnen Sie Entfernung, Azimutwinkel und Höhenwinkel aus GPS-Breiten- und Längengrad mit pyproj
Finden Sie die allgemeinen Begriffe der Tribonacci-Sequenz in linearer Algebra und Python
Den Namen der Methode, die ihn aufgerufen hat, finden Sie in der Python-Methode
Internes / externes Urteil mit Python: Erhalten Sie den Namen der Stadt / des Dorfes aus den Breiten- / Längengradinformationen eines beliebigen Punktes