欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用MySQL的geometry類型處理經(jīng)緯度距離問(wèn)題的方法

 更新時(shí)間:2019年01月31日 09:08:22   作者:Shawn  
這篇文章主要介紹了使用MySQL的geometry類型處理經(jīng)緯度距離問(wèn)題的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

建表

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 函數(shù),且 POINT() 里面是:經(jīng)度+空格+緯度

查詢

1. 查看經(jīng)緯度

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

2. 計(jì)算兩點(diǎn)之間的距離

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

算出來(lái)的結(jié)果,單位是米

注意現(xiàn)在POINT()里面經(jīng)緯度之間是逗號(hào)分隔的

3. 查詢距離小于1000m的地點(diǎn),并由遠(yuǎn)及近排序

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論