MySQL innerhalb des geografischen Bereichs für Karten
Das Abfragen geografischer Daten aus einer großen Datenbank zur Anzeige bestimmter Standorte innerhalb eines bestimmten Bereichs ist eine häufige Herausforderung in Kartierungsanwendungen. In dieser Frage wird untersucht, wie der Abruf von Adressen innerhalb eines 5-Meilen-Radius um den angegebenen geografischen Standort eines Benutzers optimiert werden kann.
Haversine-Formel zur Entfernungsberechnung
Zur Bestimmung der Entfernung zwischen zwei Punkten auf der Erdoberfläche wird die Haversine-Formel verwendet. Diese mathematische Formel berechnet die Großkreisentfernung unter Berücksichtigung der Erdkrümmung sowie der Breiten- und Längengrade der Punkte.
Abfrageoptimierung mit Haveline-Formel
Nutzung der Mit der Haversine-Formel ruft die bereitgestellte MySQL-Abfrage nur die Adressen ab, die in den gewünschten Bereich fallen:
$sql = "SELECT *, (3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
Parameter und Variablen
Ergebnis
Die Abfrage gibt eine Liste von Adressen mit ihren jeweiligen berechneten Entfernungen aus. Die HAVING-Klausel stellt sicher, dass nur die Adressen innerhalb des angegebenen 5-Meilen-Radius abgerufen werden, was zu einer effizienteren und gezielteren Auswahl von Datensätzen führt. Dieser Ansatz reduziert die Menge der übertragenen und verarbeiteten Daten erheblich und verbessert so die Gesamtleistung der Kartenanwendung.
Das obige ist der detaillierte Inhalt vonWie optimiert man Georaumabfragen in MySQL für Adressen innerhalb eines Umkreises?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!