2011-05-21 38 views
0

請耐心等待,因爲我對地理編碼非常陌生,不確定自己有什麼需要達成目標。地理編碼計算 - 我有足夠的數據嗎?

我想讓用戶選擇墨爾本市郊區。當他們選擇郊區時,我想在選定的一英里範圍內顯示周圍的郊區。所以,我的數據庫表如下所示:

郊區LattLong
FITZROY 37°47' S/144°58' E

COLLINGWOOD 37°48' S/144°59' E

ABBOTSFORD 37°48' S/144°59' E

克利夫頓山37°47' S/144°59' E

FITZROY NORTH 37°47' S/144°59' E

CARLTON 37°48'S/144°58'E

因此可以說用戶選擇FITZROY作爲其郊區。這些是我認爲在1英里範圍內的一些郊區。

我的問題是,我不理解LattLong字段中的數據。這是足夠的數據來做我的計算嗎?

有沒有一個例子可以告訴我如何選擇距離MySQL數據庫1英里以內的郊區?

我不知道從哪裏開始在谷歌幫助我,所以任何指導將不勝感激。

親切的問候, 約翰

回答

0

它是在一個數據庫中更容易與工作地理數據,並使用數學公式如果轉換緯度和經度,以十進制度。這會給你數字如「80.」。然後,您可以根據這兩個數字的簡單差異編寫查詢,例如編寫一個查詢,其中經度和緯度的差值小於0.02等等。

谷歌十進制度瞭解更多並獲得轉換技術。這是一個簡單的公式,您還必須使用E,W. N和S將十進制數分配爲正數或負數。

就你而言,你的數據只有幾分鐘。例如,轉換你的東西,144°58'E = 144 + 58/60。 58/60 = 0.9666666666 ...但是,您只有2位有效數字 - 58是兩位數字,60是兩位數字。所以結果是144.97現在,簡而言之,赤道上的一英里約爲0.02個十進制度。所以你需要精確到小數點後第二位,但是你在這個小數位上取整。所以你需要的分辨率是在你所擁有的數字的精確度的極限。

因此,不幸的是,沒有。實際上,你需要至少一個精確的十進制數,以合理的精度定位一英里內的東西。所以除了分鐘之外,你還需要經度和緯度。

+0

謝謝您的回覆。它使事情變得更加清晰 - 除了數據不足之外,我正在尋找的東西除外:)我使用了一個網站[link](http://www.worldatlas.com/aatlas/latitude_and_longitude_finder.htm)它看起來很理想,因爲我現在只是建立數據。我不希望它在運行時抓住數據,而是從我的數據庫中檢索它。我有一個自動化的腳本運行,進入城市和城鎮,然後將它們轉儲到數據庫中。我稍後將解析數據,但至少現在我知道如何將其轉換爲小數!在搜索現在找到.. – user764226 2011-05-24 20:30:30

+0

另一個來源。感謝您的輸入,並在Google上找到有關十進制度的負載,所以現在我有一個起點:)乾杯! – user764226 2011-05-24 20:31:52