mysql 計算兩坐標間的距離

jopen 8年前發布 | 41K 次閱讀 MySQL 數據庫服務器

mysql 5.6.1 加入了空間數據支持功能,新增了st_*相關函數,可以非常方便的計算兩個地理坐標點的距離了。

如下例子:按我的坐標計算周邊坐標的距離并由近到遠排序

select name,st_distance(point(113.327955,23.129717),point)*111195 as distance,address from table1 where st_distance(point(113.327955,23.129717),point)*111195 < 100 order by distance asc limit 100

注意:其中point字段類型是 point,其值可以通過以下方法寫入:

update table1 set point = point(113.123232,24.1324234)

st_distance 計算的結果單位是 度,需要乘111195(地球半徑6371000*PI/180) 是將值轉化為米

其它相關空間函數參考官方手冊

http://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-mbr.html

參考

https://www.percona.com/blog/2013/10/21/using-the-new-spatial-functions-in-mysql-5-6-for-geo-enabled-applications/


來自: http://my.oschina.net/swingcoder/blog/599905

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!