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;
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!