Help us understand the problem. What is going on with this article?

Yahoo!リバースジオコーダAPI使ってみた

More than 3 years have passed since last update.

Yahoo!リバースジオコーダAPIは、緯度・経度で指定された場所の住所検索結果を返してくれるWebAPI

http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/reversegeocoder.html

APIを使うまで

Yahoo IDを持っているとする

次のURLからアプリーケーション登録をして,アプリーケーションIDを発行してもらう
https://e.developer.yahoo.co.jp/register

実際に使ってみる

サンプルコード

アプリケーションIDを別ファイルでdefineして使いたいので,以下のようなアプリケーションID設定のためのphpファイルを作る

<?php
define("appid", "自分のアプリケーションID");
?>

実際に,リバースジオコーダを使って緯度経度から,住所に変換しているphpファイル

<?php

require_once("appid.php");

$lat = 35.68381981;//緯度
$lon = 139.77456498;//経度

$uri = "http://reverse.search.olp.yahooapis.jp/OpenLocalPlatform/V1/reverseGeoCoder"
    . "?lat=" . $lat . "&lon=" . $lon . "&appid=" . appid . "&output=json";

$curl = curl_init($uri);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($curl);
curl_close($curl);

$res = json_decode($response,true);

$locationName = $res[Feature][0][Property][Address];

print $locationName."\n";
?>

実行結果

$php lonlatToStreetAdress.php
東京都中央区日本橋1丁目

メモ

curl

Httpで情報を取得する際に使用する
http://php.net/manual/ja/function.curl-init.php
上のサンプルコードでは

$uri = "http://reverse.search.olp.yahooapis.jp/OpenLocalPlatform/V1/reverseGeoCoder"
    . "?lat=" . $lat . "&lon=" . $lon . "&appid=" . appid . "&output=json";

$curl = curl_init($uri);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($curl);
curl_close($curl);

で使っている

curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

は転送用のオプション
http://php.net/manual/ja/function.curl-setopt.php
'CURLOPT_RETURNTRANSFER'は返り値を文字列として返してくれる
第3引数は,第2引数のオプションをtureにするかfalseにするかを指定する

json_decode

json文字列をデコードする
http://php.net/manual/ja/function.json-decode.php

$res = json_decode($response,true);

第2引数をTRUEにすると,返り値が連想配列となる

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away