国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

mysql計算附近的地鐵站

瀏覽:118日期:2022-06-17 16:01:15

問題描述

mysql計算附近的地鐵站

如圖有兩張表,小區表(xiaoqu)和地鐵表(metro),現在小區表里面小區附近的地鐵站(圖片中紅色字段)是空的。想批量完善這個字段,求助附近的定義是:離小區最近,并且在1000米以內的一個地鐵站。例如:北京的華騰園小區,附近1000米有雙井和勁松兩個站,但是勁松距離較近,所以華騰園那一行對應的就是勁松站。

目前已經自定義了兩個經緯度之間距離的函數。getdistance(緯度1,經度1,緯度2,經度2),函數代碼如下:

-- getdistance(Lat1 ,Lon1,Lat2 ,Lon2)BEGIN DECLAREdis DOUBLE ; SET dis = ACOS(SIN((Lat1 * 3.1415) / 180) * SIN((Lat2 * 3.1415) / 180) + COS((Lat1 * 3.1415) / 180) * COS((Lat2 * 3.1415) / 180) * COS( (Lon1 * 3.1415) / 180 - (Lon2 * 3.1415) / 180) ) * 6370996.81;RETURN dis ;END

問題解答

回答1:

我的思路是:獲取目標點坐標->以一定范圍r來查看地鐵表中哪些地鐵在r中,如果有,進行比較距離,如果沒有增大r,重復直到r距離超過最大范圍->結束。

我覺得效率的關鍵在于計算、比較距離這塊。

回答2:

我覺得這種不應該用SQL去實現。

我去做的話:

獲取小區信息,獲取屬于哪座城市。

用SQL把當前城市地鐵數據搜出來。

然后可以用各種算法(或規則,例如你上面的方法)計算最近地鐵。

SQL應該是用來存儲和獲取數據的,不應該承載太多邏輯功能

相關文章:
主站蜘蛛池模板: 苍山县| 尖扎县| 黄山市| 中宁县| 东方市| 阿尔山市| 金堂县| 富源县| 若尔盖县| 时尚| 宿松县| 丰都县| 嘉禾县| 牡丹江市| 包头市| 宝清县| 石嘴山市| 曲阜市| 于田县| 昆山市| 慈利县| 荆州市| 双桥区| 麻栗坡县| 吉木萨尔县| 西藏| 迁西县| 莎车县| 渝中区| 黎城县| 乐东| 浦北县| 交口县| 大埔区| 依兰县| 柳州市| 南溪县| 三台县| 定安县| 甘洛县| 永城市|