2010-10-10 24 views
2

我想創建檢測用戶的地理定位的基本Web應用程序,查詢一個MySQL數據庫,並返回所有公交車站內說有5公里。地理位置和haversine公式

的GTFS進料包括經度和緯度已經插入MySQL數據庫,我發現一個例子的HTML頁面,提供的瀏覽器訪問Web應用程序的經度和緯度。

我尋求一些幫助編寫了MySQL查詢需要這些信息,並返回結果。

+1

有多少用在標題半正矢的問題,你看決定答案之前是不是已經可用?我在剛體上得到了100到150個結果(大概130個)。其中許多包括地理定位,並且許多包括數據庫。 – 2010-10-10 22:35:44

回答

0

在這個link你會發現:

SELECT ID,(3959個* ACOS(COS(弧度(37))* COS(弧度(LAT))* COS(弧度(LNG) - 弧度(-122) )+ sin(弧度(37))* sin(弧度(lat))))距標記的距離距離< 25 ORDER BY distance LIMIT 0,20;

2

雖然大圓公式是精確的,你不需要在這種情況下的精度。緯度約1英里(1.6公里)。一分鐘的經度約爲cos(LAT)* 1英里。我會考慮選擇LAT +/- 3分鐘和LONG +/-(3/cos(LAT))分鐘。如果你真的需要一個圓圈,而不是一個盒子,那麼就假裝它是歐幾里德座標。這種規模的誤差小於公交車的長度。

唯一棘手的部分是,東經一分鐘的長度取決於你是從赤道有多遠。

+0

你能否詳細說一下「假裝它是歐幾里德座標」,怎麼做? – AndrewMk 2016-10-10 20:27:49