Maison > Article > base de données > Introduction à la méthode de traitement des distances de longitude et de latitude à l'aide du type géométrique de MySQL
Le contenu de cet article est une introduction à la méthode de traitement des distances de longitude et de latitude à l'aide du type géométrique de MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Créer un tableau
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`) )
Insérer
INSERT INTO map (id, address, location) VALUES (1, 'somewhere', ST_GeomFromText('POINT(121.366961 31.190049)'));
A noter que la fonctionST_GeomFromText
doit être utilisée, etPOINT()
À l'intérieur se trouvent : longitude + espace + latitude
SELECT address, ST_AsText(location) AS location FROM map;
SELECT ST_Distance_Sphere(POINT(121.590347, 31.388094),location) AS distant FROM map;
. 🎜>Le résultat calculé, l'unité est en mètres
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;Requérez les emplacements à moins de 1000 m, et trier les de loin vers près
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!