国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

使用MySQL的geometry類型處理經緯度距離問題的方法

2024-07-25 19:09:33
字體:
來源:轉載
供稿:網友

建表

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`))

插入

INSERT INTO map (id, address, location) VALUES (1, 'somewhere', ST_GeomFromText('POINT(121.366961 31.190049)'));

注意必須使用 ST_GeomFromText 函數,且 POINT() 里面是:經度+空格+緯度

查詢

1. 查看經緯度

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

2. 計算兩點之間的距離

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

算出來的結果,單位是米

注意現在POINT()里面經緯度之間是逗號分隔的

3. 查詢距離小于1000m的地點,并由遠及近排序

 

復制代碼代碼如下:
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;

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 册亨县| 福清市| 泰和县| 香港 | 工布江达县| 鹤壁市| 景德镇市| 焉耆| 土默特左旗| 五指山市| 南漳县| 泸溪县| 城固县| 平遥县| 青阳县| 南丰县| 榕江县| 琼结县| 西平县| 五寨县| 库伦旗| 丰宁| 福州市| 新丰县| 图木舒克市| 遂川县| 宜兴市| 平武县| 积石山| 大连市| 祁门县| 常山县| 静安区| 拉孜县| 昌吉市| 西华县| 平乐县| 河北区| 彰武县| 班戈县| 卓资县|