web-dev-qa-db-ja.com

緯度経度から国を取得

JavaScriptを使用して緯度と経度から国名を取得する方法を知りたいのですが。 GoogleマップのJavaScript APIを使用できます。都市と郵便番号も入手できますか?

編集:私の目的は、住所フィールドを自動的に埋めることであり、地図に表示することではありません。

46
aWebDeveloper

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?
  • パラメーター:latlngtypelangradius(沿岸地域の最も近い国のkm単位のバッファー)
  • 結果:指定された緯度/経度のiso国コードを返します

パラメーターtype=xmlこのサービスは、iso国コードと国名を含むxmlドキュメントを返します。オプションのパラメータlangを使用して、国名の言語を指定できます。JSON出力はtype=JSON

docs を参照してください

Edit:demoは単なるデモユーザーであり、 http://でユーザーアカウントを作成する必要があることに注意してください。 www.geonames.org/login サービスを使用するため。

62
Christian

Google Geocoding APIは、これらの結果をJSON形式で提供します。無料ですが、無制限のアクセスには支払いが必要な場合があります。

以下のリンクをお試しください

http://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801
11
Nishad Up
<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>
9
Krishna Patel

自己完結型のライブラリ(つまり、サーバー/インターネット接続がなく、高速)が望ましく、国情報のみが必要な場合、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で呼び出されます。

7
headuck

はい。Googleマップを使用して、指定された緯度と経度の国を検索できます。 リバースジオコーディングサービス を使用します。

サーバーから取得した応答から、国、都市、郵便番号、および完全な住所を取得できます。詳細については、リンクから例を確認してください;)

5
aniri

Golangを使用している場合は、これらの2つのライブラリのいずれかを使用して国を取得できます。データセットが組み込まれているため、無制限にAPIを呼び出す必要もありません。

https://github.com/SocialHarvest/geobed

https://github.com/bradfitz/latlong

0
pyros2097