題:
告訴您給定緯度/經度的國家/地區的軟件
Nicolas Raoul
2015-03-20 15:57:09 UTC
view on stackexchange narkive permalink

坐標 41.44241,21.31530 是什麼國家?

手動Google Maps搜索告訴我它位於馬其頓 代碼>。

是否有一個程序(或庫)可以以編程方式告訴我?

要求:

  • 如果坐標不在一個國家,應該說 sea 或適當的名稱
  • 對於像克什米爾這樣有爭議的地區,任何事情都很好,我並不挑剔
  • 免費
  • 在Linux上工作
  • 如果沒有可用的庫/程序,Web API也可以,但每天必須至少接受50,000個請求
您看到http://stackoverflow.com/questions/10567539/reverse-geocoding-converting-coordinates-into-address嗎?
@KaranGoel:這個JavaScript問題與某人調用Google Maps API的越野車源代碼有關,以及如何修復該代碼。全地址地理編碼聽起來有些矯kill過正,但是它總比沒有好,因此請隨時在此處添加有關Google Maps API的答案:-)
您的請求的根本錯誤在於您每天要免費獲得5萬個請求。如果您確實有太多配額,那麼您應該期望支付。
@KaranGoel:如果我現在有一個星期的假期,我將開發一個這樣做的庫,並免費提供(作為開源)。這不是火箭科學,只是從OpenStreetMap獲取邊界圖併計算每個點落在哪個國家/地區。
老實說,這感覺不需要花費一周的時間。但是,如果每月請求量達到150萬個,則肯定不會免費。您仍然必須擁有自己的服務器實例或其他任何實例。
@KaranGoel:在此網站上,“免費”表示許可/訂閱費用。您自己計算機的電/硬件不計算在內。順便說一句,快速估算表明,在我的筆記本電腦上,5萬個坐標的成本可能不到0.01美元。
不想吵架,但是服務器不只是電力。祝好運。
二 答案:
om_henners
2015-03-27 16:27:14 UTC
view on stackexchange narkive permalink

匹配一組經緯度的一種簡單方法是使用 QGIS點採樣工具

  1. 首先,下載並安裝QGIS
  2. 下載並安裝政治邊界多邊形的空間數據集(例如,從 naturalearthdata.com
  3. 創建一個包含您的點和其他內容的CSV文件您感興趣的屬性
  4. 打開QGIS並安裝點採樣工具插件( QGIS文檔中的說明)
  5. 為項目添加政治界限( QGIS文檔中的說明)
  6. 添加興趣點的CSV( QGIS文檔中的說明)
  7. 通過單擊工具欄中的圖標Point Sampling Tool icon使用點採樣工具
  8. 從兩個圖層中選擇要保留在新文件中的屬性,並創建一個新的shapefile作為輸出
  9. 選中將創建的圖層添加到目錄按鈕以將數據重新添加到地圖
  10. 右鍵單擊新創建的圖層目錄中的ed層,然後選擇將層另存為
  11. 選擇CSV並單擊“確定”,您將獲得一個CSV,其中包含國家/地區的點已加入CSV
  12. ol >
很好用! 5萬個積分大約需要半小時,這是合理的。最重要的是,它可以脫機工作,這是時間/網絡成本/隱私的理想選擇。首次使用QGIS時,它非常直觀,因此可以輕鬆執行上述步驟。
om_henners
2015-03-26 04:52:18 UTC
view on stackexchange narkive permalink

您正在查看反向地理編碼。如果您熟悉Python,我建議您使用 geopy 庫,該庫包含針對包括Yahoo,Google和OpenStreetMap Nominatum在內的許多服務的地理編碼器。

您的問題將是請求的數量,這取決於您使用的地理編碼服務的許可證,因此您必須仔細檢查這些請求。每天要使用5萬個地址,您可能最終需要付費。

例如,使用Google地理編碼器,前提是您的點是經緯度坐標對:

 從geopy.geocoders導入GoogleV3geolocator = GoogleV3()location = geolocator.reverse((41.44241,21.31530),確切_ =真實)print(location.address) 

如果處理更大的捲@Nicolas Raoul在上面建議的數據集,您實際上應該下載包含政治邊界的數據集(例如,來自 naturalearthdata.com的數據集),並使用諸如 QGIS之類的GIS系統進行相交帶有您的觀點的數據。

全地址反向地理編碼對於我想要達到的目標來說是過高的。離線的國家/地區級地理編碼庫將是完美的。它可能很簡單:IF -32 <緯度<-53和164 <經度<180 THEN“ New Zealand””型代碼(對於某些國家來說稍微複雜一些)。您的QGIS想法聽起來很像我所需要的,您介意將它詳細介紹一下嗎?非常感謝!
您也可以看看如何使用http://www.soest.hawaii.edu/pwessel/gshhg/中的政治邊界數據或CIA數據https://www.evl.uic.edu/pape/data/WDB /


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...