スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



  

Yahoo!のジオコーダAPIを使用してみた

以前、GoogleのGeocodeAPIを使用したことがあったが、無料で使用する場合、短期間で集中的に問い合わせをすると、途中からレスポンスを得られなくなることがあった。
今回はYahoo!にも似たようなAPIがあるというので少し使用してみた。
以下がそのサンプルとなるが、Yahoo!のジオコーダAPIは国内の住所にしか対応していないようなので、googleほど柔軟に結果を出してはくれないようだ。またYahooのジオコーダAPIは1回の検索に対し複数の結果を返してくれるようだ。

define("GEO_CODE_API_URL", "http://geo.search.olp.yahooapis.jp/OpenLocalPlatform/V1/geoCoder");
define("MAP_API_URL", "http://map.olp.yahooapis.jp/OpenLocalPlatform/V1/static");
define("APP_ID", "[Yahoo!の発行するアプリケーションID]");

/**
* getGeoCode
*
* @param string address // 検索に使用する文字列
* @return array ret // 結果配列(緯度、経度、住所、地図のURL)
**/
function getGeoCode($address)
{
 $to_url = GEO_CODE_API_URL;
 $to_url .= "?appid=" . APP_ID;
 $to_url .= "&query=" . urlencode($address);
 $to_url .= "&ie=UTF-8";
 $to_url .= "&datum=wgs";
 $to_url .= "&results=5";

 $data = @simplexml_load_file($to_url);

 if (!$data) return false;
 $ret = array();
 foreach ($data as $key => $value) {
  if ($key == "Feature") {
   list($longitude,$latitude) = explode(",", $value->Geometry->Coordinates);
   $ret[] = array(
    "latitude" => $latitude,
    "longitude" => $longitude,
    "image_url" => getImageUrl($latitude, $longitude),
    "address" => $value->Property->Address,
   );
  }
 }
 return $ret;
}

/**
* getImageUrl
*
* @param string latitude
* @param string longitude
* @return string map_url
**/
function getImageUrl($latitude, $longitude)
{
 $map_url = MAP_API_URL;
 $map_url .= "?appid=" . APP_ID;
 $map_url .= "&lat=" . $latitude;
 $map_url .= "&lon=" . $longitude;
 $map_url .= "&z=10";
 $map_url .= "&width=300";
 $map_url .= "&height=200";
 $map_url .= "&pin1=" . $latitude . "," . $longitude;
 return $map_url;
}


Yahoo! ジオコーダAPIの仕様はこちら

今回作成したサンプルはこちら
関連記事
スポンサーサイト



  

テーマ : プログラミング
ジャンル : コンピュータ

コメント

非公開コメント

検索フォーム
プロフィール

サトリヒロシ

Author:サトリヒロシ
ビジネスを重視した企画を支援したいエンジニアが、何かを書こうとするブログです。

サトリ潜伏先
サトリ倉庫

WEB関連の技術で調査リクエストがあればご連絡ください。

カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
RSSリンクの表示
リンク
QRコード
QRコード
FC2カウンター
スポンサードリンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。