国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉首市| 扶余县| 满洲里市| 灵石县| 武胜县| 开阳县| 固始县| 辛集市| 武平县| 万山特区| 布拖县| 古田县| 桐庐县| 常州市| 江北区| 枣庄市| 泰和县| 淳化县| 九龙县| 呼和浩特市| 靖远县| 盐源县| 新疆| 洛南县| 蒙阴县| 乃东县| 化德县| 姜堰市| 南阳市| 塔河县| 绩溪县| 古丈县| 万源市| 巴彦淖尔市| 建平县| 荆门市| 白朗县| 北川| 哈尔滨市| 桑植县| 璧山县|