Heim  >  Artikel  >  Datenbank  >  Einführung in die Methode zur Verarbeitung von Längen- und Breitengradentfernungen mithilfe des MySQL-Geometrietyps

Einführung in die Methode zur Verarbeitung von Längen- und Breitengradentfernungen mithilfe des MySQL-Geometrietyps

不言
不言nach vorne
2019-02-01 10:09:042825Durchsuche

Der Inhalt dieses Artikels ist eine Einführung in die Methode zur Verarbeitung von Längen- und Breitengraden mithilfe des Geometrietyps MySQL. Ich hoffe, dass er für Sie hilfreich ist.

Tabelle erstellen

CREATE TABLE `map` (
  `id` int(11) NOT NULL,
  `address` varchar(255) NOT NULL DEFAULT '',
  `location` geometry NOT NULL,
  PRIMARY KEY (`id`),
  SPATIAL KEY `idx_location` (`location`)
)

Einfügen

INSERT INTO map (id, address, location) VALUES (1, 'somewhere', ST_GeomFromText('POINT(121.366961 31.190049)'));
Beachten Sie, dass die Funktion ST_GeomFromText und innerhalb von ist: Längengrad + Leerzeichen + Breitengrad POINT()
Abfrage

1. Breiten- und Längengrad anzeigen

SELECT address, ST_AsText(location) AS location FROM map;

2. Berechnen Sie den Abstand zwischen zwei Punkten

SELECT ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map;

, Die Einheit ist Meter
Beachten Sie, dass die Längen- und Breitengrade in POINT() jetzt durch Kommas getrennt sind
3. Fragen Sie Standorte ab, die weniger als 1000 m entfernt sind, und sortieren Sie sie von weit nach nah

SELECT id, address, ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map WHERE ST_Distance_Sphere(POINT(121.590347, 31.388094),location) < 1000 ORDER BY distant;

Das obige ist der detaillierte Inhalt vonEinführung in die Methode zur Verarbeitung von Längen- und Breitengradentfernungen mithilfe des MySQL-Geometrietyps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen