Bestimmen Sie die Entfernung in der Breiten- und Längengraddatenbank
Bei gegebenen Breiten- und Längengradkoordinaten besteht die Aufgabe darin, den Datensatz mit dem nächstgelegenen übereinstimmenden Breiten- und Längengrad aus der Datenbank abzurufen und gleichzeitig sicherzustellen, dass die Entfernung innerhalb eines bestimmten Schwellenwerts bleibt. Wenn die Entfernung den angegebenen Grenzwert überschreitet, sollten keine Datensätze zurückgegeben werden.
Die bereitgestellte Tabellenstruktur enthält Spalten für Längengrad, Breitengrad und andere standortbezogene Informationen. Dazu verwenden wir die folgende SQL-Abfrage:
<code class="language-sql">SELECT latitude, longitude, SQRT( POW(69.1 * (latitude - [startlat]), 2) + POW(69.1 * ([startlng] - longitude) * COS(latitude / 57.3), 2)) AS distance FROM TableName HAVING distance < [radius]</code>
In dieser Abfrage stellen [startlat]
und [startlng]
die Startkoordinaten der gemessenen Distanz dar. Entfernungsberechnungen werden mithilfe der Haversine-Formel durchgeführt, die den Abstand zwischen zwei Punkten auf einer Kugel (in diesem Fall der Erde) genau bestimmt. Die Funktion POW()
quadriert die Differenz zwischen Start- und Zielkoordinaten und die Funktion COS()
berücksichtigt die Erdkrümmung. Das Endergebnis ist die Entfernung in Meilen.
Durch die Einbindung der HAVING-Klausel in die Bedingung „Abstand < [Radius]“ stellen wir sicher, dass nur Datensätze zurückgegeben werden, deren Abstand kleiner als der angegebene Radius [Radius] ist.
Das obige ist der detaillierte Inhalt vonWie finde ich mithilfe von Breiten- und Längengraden den nächstgelegenen geografischen Datensatz innerhalb eines bestimmten Umkreises?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!