2011-03-01 30 views
5

如何從緯度經度位置獲取國家代碼?經緯度位置的國家代碼(不使用地理編碼服務)

我知道有很多可用的地理編碼服務,但它們沒有滿足我的要求,因爲我的應用程序在上線後幾個小時(許多地理編碼請求)被阻止。

大多數地理編碼服務也提供商業服務,但它們還不是一種選擇,因爲該項目在其中起始塊。

我做了一些研究,並認爲我找到了一個辦法: 獲取一個包含所有國家(多邊形)邊界的形狀文件(或其他數據文件)。 接下來只需查看哪個多邊形是lat/lng的位置即可。 最後從特定的多邊形中讀取元數據。

有沒有人知道我可以得到一個形狀文件(或其他格式),其中包括多邊形(或只是線),顯示世界上所有國家的邊界​​?

或者有沒有更簡單的方法來解決這個問題?

回答

3

考慮到世界上的國家(多邊形)的數量,您可能需要細分一組國家多邊形,以便首先進行粗略過濾(例如,如果該點位於西半球和北半球,則只需檢查北美,中美洲和加勒比國家,這可能會給你一個速度提升。

另外,請記住,許多國家由多個多邊形的,只要記住這一點,你的代碼。

我的天堂未使用這些來源中的任何一個來獲取國家/地區邊界數據,但結帳: http://geocommons.com/overlays/33578http://geospatial.edublogs.org/2010/06/29/world-country-boundary-files/

+0

團隊感謝您的答覆另一個來源。我剛剛運行了postgis,現在我正在嘗試導入數據文件。 – 2011-03-03 13:07:44

0

我假設你想要ISO 3166-1 alpha-2國家代碼(vs. FIPS 10 = 4,將於2012年12月結束)。 ISO列出了248個國家,地區和依賴項。維也納邁克的做法是通過做一個快速過濾器來減少檢查大陸聽起來像一個很好的性能方法。

您將需要使用國家shapefile來了解lat/lng位於哪個國家(即,檢查點是否在多邊形內)。

有很多免費來源(但可能有商業許可限制)。下面是來自開源項目(OpenStreetMap的)

http://downloads.cloudmade.com/

安德魯,在OpenGeoCode.Org

+0

我也可以謝謝你的回覆。我將仔細研究哪些數據文件在openstreetmap上可用,這是我從過去知道的,但與前一段時間相比,他們似乎擁有更多的數據。 – 2011-03-03 13:11:06

相關問題