3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Geocoding.jp API を使ってみる

Last updated at Posted at 2022-05-09

住所文字列(東京都新宿区西新宿二丁目8番1号など)から緯度経度を求めることをジオコーディングと言います。ジオコーディングのサービスはいろいろありますが、その中でGeocoding.jp APIを使ってみました。

Geocoding.jp API とは

URL は https://www.geocoding.jp/api/ です。個人の方が運営しているサービスです。

image.png

「Geocoding.jp APIについて」をクリックすると使い方などが表示されます。

image.png

無料で利用可能ですし、 API キーも必要ありません。

重要なのは「検索の頻度を、10秒に1回程度に抑えてください。」です。あくまでも個人の方が運営されているサービスであることに注意しましょう。

使ってみる

とりあえず使うだけなら、ウェブのフォームに住所文字列を入れて「GPS座標検索」をクリックすればOKです。結果として XML が返ってきます。

測地系は WGS84 です。tokyo97風も可能ということですが、"風"ということですので WGS84 から計算で求めているのだろうと思われます。

まずフォームに東京都庁の住所である「東京都新宿区西新宿二丁目8番1号」を入れてみます。

image.png

「GPS座標変換」をクリックすると、ジオコーディング結果が XML で返ってきます。

image.png

緯度 35.688408, 経度 139.692005 が返ってきましたので、Google マップで確認してみます。

image.png

ちゃんと東京都庁になっていますね。

使い勝手など

ジオコーディングに失敗するとエラーが返ってきます。

image.png

「東京都新宿区西新宿二丁目8番1号」「東京都新宿区西新宿2丁目8番1号」「東京都新宿区西新宿2-8-1」はどれも同じ緯度経度を返してくれますので、住所の揺らぎには結構対応してくれます。

ここまでフォームから使ってきましたが、もちろん API としてプログラムからも使えます。PHP でサンプルコードを書くと以下のようになります。

<?php
$geocode = simplexml_load_file("https://www.geocoding.jp/api/?q=" . urlencode("東京都新宿区西新宿二丁目8番1号"));
if($geocode && property_exists($geocode, "coordinate")) {
  $latitude = $geocode->coordinate->lat;
  $longitude = $geocode->coordinate->lng;
  print "$latitude, $longitude\n";
}
sleep(10);
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?