2013-02-03 77 views
4

我想知道:給定一個郵政編碼,那個郵政編碼的X英里範圍內的所有郵編都是什麼。 Rails,距離郵編的距離內的所有郵編


我發現了一些解決方案,我已經在下面發佈了,但是我想知道是否有專門針對Rails或Ruby的更好的解決方案(換句話說,就是一個gem,一個gist等)。我發現的Ruby解決方案已有幾年了,所以現在看起來可能有更好的解決方案。

理想情況下,我希望只需要一個字符串「11026」並生成字符串作爲輸出的東西,而不必創建AR模型或處理數據庫過於廣泛。

Geocoder似乎沒有明確地做到這一點...也沒有Geokit。我不知道這些寶石是否有簡單的解決方法。


類似的解決方案:

Find all Zipcodes within specified distance of a zipcode

回答

0

SQL的智慧,已經有人問類似的問題here。有點簡單的實施,並會給你足夠好的結果來測試你的規格。否則,如果您可以找到一個每個zip都有緯度/長度的庫,從地理鄰近的角度來看它會很容易。然後,您應該查找Postgresql鄰近搜索。 查找更多:http://www.boutell.com/zipcodes/http://www.geopostcodes.com/

+0

第一個鏈接的問題是,它並沒有真正使用任何類型的數據庫,它只是與zip的第一個字符匹配......這不是匹配器的太大。另外其他鏈接似乎是zipcode的數據庫? – varatis

+0

我正在尋找返回距離特定郵政編碼最近的郵編的東西。希望不會依賴外部服務的東西(比如Geocoder)。也許如果拉鍊是以經緯度存儲在數據庫中,然後有一些方法可以查看附近經緯度的所有郵編。 – varatis

+0

免費郵政編碼經緯度數據庫,具有郵政編碼,您可以獲得座標。有了座標,你可以做到地理位置接近。使地理點位於相同的半徑範圍內,可以使其返回對象的郵政編碼。我想你在第二條評論中已經有了它的要點。 http://www.boutell.com/zipcodes/似乎是你想要的數據庫。我會給它一個鏡頭。 – mathieugagne