2010-12-21 121 views
40

我想知道如何使用JavaScript獲取緯度&經度的國家名稱。我打開使用Google Maps的JavaScript API。我也可以得到城市和郵編嗎?從經度獲取國家

編輯:我的目標是自動填寫地址欄,而不是在地圖上顯示它。

+0

http://code.google.com/apis/maps/documentation/geocoding/ – deceze 2010-12-21 09:18:13

+2

又見** [考慮到緯度/經度座標,怎樣才能找出城市/國家?](http://stackoverflow.com/questions/6159074/given-the-lat-long-coordinates-how-can-we-find-out-the-city-country)** – hippietrail 2012-07-31 12:35:18

回答

51

我不知道它是否適用於谷歌地圖,但有一個Web服務返回一個國家代碼並以參數lat和long作爲參數。

下面是一個例子: http://api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo

我還發現一個小說明:任何給定的點的

的ISO國家代碼。

  • web服務類型:REST
  • 網址:ws.geonames.org/countryCode?
  • 參數:latlngtypelangradius(公里緩衝區沿海地區最近的國家)
  • 結果:返回ISO國家給定經度/緯度的代碼

使用參數type=xml此服務返回一個帶有iso國家代碼和國家/地區名稱的xml文檔。可選參數郎可用於指定國名應在語言JSON的輸出效果與type=JSON

docs

編輯:請注意,demo僅僅是一個示範用戶並且您應該創建一個用戶帳戶http://www.geonames.org/login爲了使用該服務。

+0

我該如何在javascript – aWebDeveloper 2010-12-21 09:29:42

+0

geonames.org +1中閱讀此數據。另請查看http://www.maxmind.com/。 – 2010-12-21 09:32:38

+0

geonames.org +1 – 2010-12-21 14:05:40

5

是的,你可以使用谷歌地圖找到給定緯度和經度的國家。使用reverse geocoding service

您可以從服務器獲得的回覆中獲得國家,城市,郵政編碼和完整地址。從鏈接的詳細信息檢查例子)

9
<form id="form1" runat="server"> 
<div> 
    <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js" ></script> 
    <br />Country Code: 
    <script type="text/javascript">document.write(geoip_country_code());</script> 
    <br />Country Name: 
    <script type="text/javascript">document.write(geoip_country_name());</script> 
    <br />City: 
    <script type="text/javascript">document.write(geoip_city());</script> 
    <br />Region: 
    <script type="text/javascript">document.write(geoip_region());</script> 
    <br />Region Name: 
    <script type="text/javascript">document.write(geoip_region_name());</script> 
    <br />Latitude: 
    <script type="text/javascript">document.write(geoip_latitude());</script> 
    <br />Longitude: 
    <script type="text/javascript">document.write(geoip_longitude());</script> 
    <br />Postal Code: 
    <script type="text/javascript">document.write(geoip_postal_code());</script> 

</div> 
</form> 
5

如果一個獨立的庫(即無服務器/互聯網連接和快速)是可取的,全國唯一信息是必需的,下面的庫基於OpenStreetMap數據可能是有用的 - https://github.com/hlaw/codegrid-js

<script type="text/javascript" src="[path]/codegrid.js"></script> 
grid = codegrid.CodeGrid(); // initialize 

grid.getCode (lat, lng, function (err, code) { ... }); 

回調函數調用code,對經緯度的國家代碼。

+0

當JavaScript無法在本地讀取json文件時,如何在沒有服務器的情況下使用此工作方式? – CodeCabin 2017-09-28 21:03:42

10

Google地理編碼API在JSON合成器中提供了這些結果。它的免費,但你可能需要付費無限訪問。

嘗試波紋管連接

http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801 
+0

只是簡單而聰明。謝謝 – 2016-01-20 09:30:08

+0

你是什麼意思的無限訪問? – CENT1PEDE 2016-01-27 13:23:23

+0

Google地圖地理編碼API對免費使用有一些限制。如每天最大的免費請求數是2,500。並且每秒的最大免費請求數爲10.有關更多詳細信息,請訪問https://developers.google.com/maps/documentation/geocoding/usage-limits – 2016-01-28 06:23:55