2011-11-10 59 views
0

我有一系列以十進制點格式表示的GPS座標,乘以1.000.000。例如,緯度51.1和經度4.1將被保存爲Y 51100000X 4100000。這些座標保存在SQlite 3數據庫中。如何在邊界圓內找到GPS座標

使用Ruby 1.9.2和Rails 3.0.8,我需要能夠獲取某個中心點的某個半徑內的所有記錄。例如,給定一個緯度爲51和經度爲4的中心點,我需要找到10公里範圍內的所有記錄。

本文介紹了相當不錯如何執行查詢來獲取這些記錄,但SQlite的似乎不支持所使用的數學函數:http://www.movable-type.co.uk/scripts/latlong-db.html

是否有任何其他的方式,我將能夠檢索來自數據庫的正確記錄不涉及遍歷整個表格?

謝謝!

回答

1

除非您必須使用SQLite,嘗試與獅身人面像:

我會轉換GPS座標,緯度/經度座標,然後用獅身人面像(有寶石的思維 - 獅身人面像鋼軌:http://freelancing-god.github.com/ts/en/)。與獅身人面像您可以與獅身人面像的函數在給定圓內的探索點:@geodist

的如何做到這一點,你會看到這裏的一個光輝的榜樣:http://joeyschoblaska.com/blog_posts/220-thinking-sphinx-searching-by-location-and-keyword

+0

謝謝,懂了工作!我現在確實堅持使用SQLite。雖然這可能會在未來的某個時候發生變化,但我現在需要讓它運行。 – Laurens