JavaScriptを使用して緯度と経度から国名を取得する方法を知りたいのですが。 GoogleマップのJavaScript APIを使用できます。都市と郵便番号も入手できますか?
編集:私の目的は、住所フィールドを自動的に埋めることであり、地図に表示することではありません。
Googleマップで動作するかどうかはわかりませんが、国コードを返し、緯度と経度をパラメータとして使用するWebサービスがあります。
以下に例を示します。
http://api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo
JSONデータを返します:{"languages":"de","distance":"0","countryCode":"DE","countryName":"Germany"}
私も少し説明を見つけました:
任意のポイントのiso国コード。
- Webサービスタイプ:REST
- URL:
ws.geonames.org/countryCode?
- パラメーター:
lat
、lng
、type
、lang
、radius
(沿岸地域の最も近い国のkm単位のバッファー)- 結果:指定された緯度/経度のiso国コードを返します
パラメーター
type=xml
このサービスは、iso国コードと国名を含むxmlドキュメントを返します。オプションのパラメータlangを使用して、国名の言語を指定できます。JSON出力はtype=JSON
docs を参照してください
Edit:demo
は単なるデモユーザーであり、 http://でユーザーアカウントを作成する必要があることに注意してください。 www.geonames.org/login サービスを使用するため。
Google Geocoding APIは、これらの結果をJSON形式で提供します。無料ですが、無制限のアクセスには支払いが必要な場合があります。
以下のリンクをお試しください
http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801
<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>
自己完結型のライブラリ(つまり、サーバー/インターネット接続がなく、高速)が望ましく、国情報のみが必要な場合、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) { ... });
コールバックは、latlngの国コードであるcode
で呼び出されます。
はい。Googleマップを使用して、指定された緯度と経度の国を検索できます。 リバースジオコーディングサービス を使用します。
サーバーから取得した応答から、国、都市、郵便番号、および完全な住所を取得できます。詳細については、リンクから例を確認してください;)
Golangを使用している場合は、これらの2つのライブラリのいずれかを使用して国を取得できます。データセットが組み込まれているため、無制限にAPIを呼び出す必要もありません。