So verwenden Sie den Geometrietyp von MySQL, um Längen- und Breitengrad-Distanzprobleme zu bewältigen

So verwenden Sie den Geometrietyp von MySQL, um Längen- und Breitengrad-Distanzprobleme zu bewältigen

Erstellen einer Tabelle

CREATE TABLE `map` (
 `id` int(11) NICHT NULL,
 `Adresse` varchar(255) NICHT NULL STANDARD '',
 `Standort`-Geometrie NICHT NULL,
 Primärschlüssel (`id`),
 RÄUMLICHER SCHLÜSSEL `idx_location` (`Standort`)
)

einfügen

INSERT INTO Karte (ID, Adresse, Standort) VALUES (1, „irgendwo“, ST_GeomFromText(„POINT(121.366961 31.190049)“));

Beachten Sie, dass Sie die Funktion ST_GeomFromText verwenden müssen und POINT() Folgendes enthält: Längengrad + Raum + Breitengrad

Abfrage

1. Überprüfen Sie den Breiten- und Längengrad

SELECT Adresse, ST_AsText(Standort) AS Standort AUS Karte;

2. Berechnen Sie den Abstand zwischen zwei Punkten

Wählen Sie ST_Distance_Sphere (Punkt (121,590347, 31,388094), Standort) als Entfernung von der Karte aus.

Das berechnete Ergebnis wird in Metern angegeben.

Beachten Sie, dass Breitengrad und Längengrad in POINT() jetzt durch Kommas getrennt sind.

3. Suche nach Orten im Umkreis von 1000 m und sortiere sie von weit nach nah

Kopieren Sie den Code wie folgt:
SELECT ID, Adresse, ST_Distance_Sphere(POINT(121.590347, 31.388094),Standort) AS entfernt FROM Karte WHERE ST_Distance_Sphere(POINT(121.590347, 31.388094),Standort) < 1000 ORDER BY entfernt;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Mybatis-Lernpfad: MySQL-Batch-Methode zum Hinzufügen von Daten
  • Detaillierte Erklärung zur Implementierung des sekundären Caches mit MySQL und Redis
  • Ausführliche Erläuterung des MySQL-Gemeinschaftsindex und des eindeutigen Index
  • So zeigen Sie das MySQL-Binlog (Binärprotokoll) an
  • Docker erstellt MySQL-Erklärung
  • PHP date()-Format MySQL-Einfügemethode für Datum und Uhrzeit
  • So lösen Sie das SQL-Injection-Problem mit pymysql
  • Schritte zum Exportieren der Felder und zugehörigen Attribute von MySQL-Tabellen
  • Lösung für das Problem des MySQL-Threads beim Öffnen von Tabellen
  • MySQL-Limit-Leistungsanalyse und -Optimierung

<<:  Lösen Sie das domänenübergreifende Problem von Get- und Post-Anfragen von vue $http

>>:  Detaillierte Erklärung, wie Tomcat asynchrone Servlets implementiert

Artikel empfehlen

Grundlegende Kenntnisse zum MySQL UNION-Operator

MySQL UNION-Operator Dieses Tutorial stellt die S...

6 Möglichkeiten zur eleganten Handhabung von Objekten in JavaScript

Inhaltsverzeichnis Vorwort 1. Objekt.freeze() 2. ...

Beispielcode zur Implementierung eines Laufschriftformats mit CSS3

Hintergrund Folgendes ist passiert: Luzhu erfuhr ...

Implementierung eines einfachen Karussells auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Detaillierte Erklärung der jQuery-Methodenattribute

Inhaltsverzeichnis 1. Einführung in jQuery 2. jQu...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7

In diesem Tutorial erfahren Sie alles über die In...

So installieren Sie JDK und Mysql auf dem Linux-System Ubuntu 18.04

Plattformbereitstellung 1. JDK installieren Schri...

So ändern Sie die CentOS-Serverzeit auf die Peking-Zeit

1. Ich habe ein VPS- und CentOS-System gekauft un...

Mehrere Möglichkeiten zum Zentrieren einer Box in der Webentwicklung

1. Notieren Sie mehrere Methoden zum Zentrieren d...