最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql空間函數(shù)計算坐標距離方式

 更新時間:2025年02月13日 09:24:00   作者:worilb  
文章介紹了如何使用MySQL的空間函數(shù)`st_distance`和`st_distance_sphere`計算兩點之間的距離,并對比了兩種方法的準確性,`st_distance`函數(shù)計算的是兩點間的度數(shù),需要乘以111195轉(zhuǎn)換為米,但因每度長度不一致會有誤差

mysql空間函數(shù)計算坐標距離

有一張表,表中有每個人所在位置及經(jīng)緯度,現(xiàn)在求表中所有人離指定經(jīng)緯度的位置。

DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `longitude` decimal(9, 6) NULL DEFAULT NULL,
  `latitude` decimal(9, 6) NULL DEFAULT NULL,
  `address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of teacher
-- ----------------------------
INSERT INTO `teacher` VALUES (1, '張三', 116.397755, 39.903179, '天安門');
INSERT INTO `teacher` VALUES (2, '李四', 116.397029, 39.917840, '故宮');
INSERT INTO `teacher` VALUES (3, '王五', 116.190595, 39.876665, '園博園');
INSERT INTO `teacher` VALUES (4, '趙六', 116.410829, 39.881983, '天壇公園');

假設(shè)本人目前在人民 大會堂,經(jīng)度116.393823,緯度39.905024,現(xiàn)在要查詢表中四個人距本人多少米。

現(xiàn)在用Mysql提供的空間函數(shù)演示計算。

1. st_distance函數(shù)

st_distance函數(shù)計算:

SELECT
	*,
	ROUND( st_distance ( point ( longitude, latitude ), point ( 116.393823, 39.905024 ))* 111195, 2 ) dis 
FROM
	teacher

2. st_distance_sphere函數(shù)

st_distance_sphere函數(shù)計算:

SELECT
	*,
	round( st_distance_sphere ( point ( 116.393823, 39.905024 ), point ( `longitude`, `latitude` ) ), 2 ) dis 
FROM
	teacher 
ORDER BY
	dis

比較兩種查詢結(jié)果,距離有不小的偏差。因為第一種st_distance函數(shù)計算的是兩點間的度,所以在計算出度數(shù)后再乘以111195得出米,而每度的長度并不一致所以有誤差。第二種st_distance_sphere函數(shù)直接計算兩點間的距離,更加準確。

對比下地圖測距:

3. st_distance_sphere取值范圍問題(極易踩坑)

在st_distance_sphere 函數(shù)中使用point計算經(jīng)緯度時有限制取值范圍,其中緯度為大于等于-90度小于等于90度,而經(jīng)度卻是大于-180度且小于等于180度。

如下所示:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL事務(wù)隔離級別和一致性詳解

    MySQL事務(wù)隔離級別和一致性詳解

    文章講解了數(shù)據(jù)庫事務(wù)的隔離性及四個級別(讀未提交、讀提交、可重復(fù)讀、串行化),不同級別解決不同并發(fā)問題,強調(diào)一致性需用戶與數(shù)據(jù)庫共同保障
    2025-08-08
  • MySQL表類型 存儲引擎 的選擇

    MySQL表類型 存儲引擎 的選擇

    這篇文章主要介紹了MySQL表類型存儲引擎的選擇,文章圍繞MySQL表類型存儲引擎的選擇的相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下,希望對你有所幫助
    2021-11-11
  • sql注入數(shù)據(jù)庫原理詳情介紹

    sql注入數(shù)據(jù)庫原理詳情介紹

    這篇文章主要介紹了sql注入數(shù)據(jù)庫原理詳情介紹,文章圍繞主題展開詳細的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-09-09
  • mysql 提示INNODB錯誤的解決方法

    mysql 提示INNODB錯誤的解決方法

    解決The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it
    2011-09-09
  • mysql數(shù)據(jù)庫自動添加創(chuàng)建時間及更新時間

    mysql數(shù)據(jù)庫自動添加創(chuàng)建時間及更新時間

    在實際應(yīng)用中我們時常會需要用到創(chuàng)建時間和更新時間這兩個字段,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫自動添加創(chuàng)建時間及更新時間的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • sql索引的介紹以及使用規(guī)則詳析

    sql索引的介紹以及使用規(guī)則詳析

    索引是一種數(shù)據(jù)結(jié)構(gòu),可以加快我們查詢的效率,但是創(chuàng)建索引需要復(fù)制數(shù)據(jù),會占用資源,下面這篇文章主要給大家介紹了關(guān)于sql索引的介紹以及使用規(guī)則的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • mysql存儲過程實現(xiàn)split示例

    mysql存儲過程實現(xiàn)split示例

    這篇文章主要介紹了mysql存儲過程實現(xiàn)split示例,需要的朋友可以參考下
    2014-05-05
  • Mysql樹形結(jié)構(gòu)的數(shù)據(jù)庫表設(shè)計方案

    Mysql樹形結(jié)構(gòu)的數(shù)據(jù)庫表設(shè)計方案

    樹形結(jié)構(gòu)對大家來說應(yīng)該都不陌生,在日常開發(fā)中經(jīng)常會遇到,下面這篇文章主要給大家介紹了關(guān)于Mysql樹形結(jié)構(gòu)的數(shù)據(jù)庫表設(shè)計的相關(guān)資料,文中通過示例代碼的非常詳細,需要的朋友可以參考下
    2021-09-09
  • MySQL數(shù)據(jù)庫索引以及失效場景詳解

    MySQL數(shù)據(jù)庫索引以及失效場景詳解

    索引是一種數(shù)據(jù)結(jié)構(gòu),為了應(yīng)對不同的場景會有多種實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫索引以及失效場景的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • MySQL空間數(shù)據(jù)存儲及函數(shù)

    MySQL空間數(shù)據(jù)存儲及函數(shù)

    這篇文章主要介紹的使MySQL空間數(shù)據(jù)存儲及函數(shù),MySQL提供了數(shù)據(jù)類型geometry用來存儲坐標信息,MySQL為空間數(shù)據(jù)存儲及處理提供了專用的類型geometry,下面就和小編一起學(xué)習(xí)下文吧
    2021-09-09

最新評論

东城区| 鹿泉市| 治县。| 文山县| 玉环县| 三台县| 垣曲县| 宜黄县| 柳江县| 中卫市| 宜兰市| 吉林省| 新安县| 清苑县| 泾阳县| 吉安市| 锦州市| 达拉特旗| 开封市| 邵阳市| 恩施市| 宁远县| 灵丘县| 莎车县| 芜湖县| 阜城县| 榕江县| 泌阳县| 三台县| 五家渠市| 通化县| 扶沟县| 文山县| 沁源县| 武义县| 通城县| 遂宁市| 岗巴县| 谢通门县| 滦平县| 满洲里市|