F.Ko-Jiの「一秒後は未来」ではウェブやSEO、API、RSSといった技術的ネタから、ちょっとした豆知識や梅酒、エンタメ系まで様々な情報を不定期にお届けしています。

APIが微妙なときでもなんとかする < API < F.Ko-Jiの「一秒後は未来」 < fkoji.com

APIが微妙なときでもなんとかする

スポンサード リンク

Web屋のネタ帳に書かれている「ホットペッパーAPIの仕様が微妙におしい件」という記事に関して。

いまのホットペッパーAPIには、取得できる情報には位置情報(緯度、経度)が含まれておらず、また逆に位置情報で検索する機能もない。正確な位置情報(緯度/経度)のデータがないと、Google Maps API とかYahoo地図情報Webサービスなんかとの連携が非常にやりづらいのだ。

確かにマッシュアップしづらいなと感じました。しかし、そこはプログラミングやAPIでごり押しすればなんとかなります。むしろ、プログラマーにはその「なんとかする能力」が求められるはずです。

たとえば次のように。

緯度/経度から住所を求めるinvgeocoderを利用する
これはいわゆる逆ジオコーディングを提供してくれているAPIです。これを利用すると、地図の中心地点や地図をクリックした地点から住所を求めることができます。

ジオコーディングのバグは「丁目」に置換すればよい

ジオコーディングのために住所を正規化する
住所情報の書式には、「番地で終わる場合とビル名で終わる場合」や「番地に丁目が含まれる場合と含まれない場合」などが考えられます。ホットペッパーAPIで提供される住所の丁目・番地部分は運良く「xx-yy-zz」の形式に正規化できるので、例えばJavaScriptなら次のようにしてジオコーディングのための住所を得ることができます。

if (address.match(/^(.+)([0-9]+)\-([0-9]+)$/)) {
 return RegExp.$1 + RegExp.$2 + '丁目' + RegExp.$3;
}
if (address.match(/^(.+)([0-9]+)\-([0-9]+\-[0-9]+)(.+)$/)) {
 return RegExp.$1 + RegExp.$2 + '丁目' + RegExp.$3;
}
if (address.match(/^(.+)([0-9]+)\-([0-9]+)(.+)$/)) {
 return RegExp.$1 + RegExp.$2 + '丁目' + RegExp.$3;
}

これらを利用すると、次のような手順で地図で表示した地域付近の店舗を地図にマッピングすることができます。

  1. 地図の中心地点の住所をinvgeocoderで取得
  2. 取得した住所の町名(town)までを使ってホットペッパーAPIで店舗情報を取得
  3. 取得した店舗情報の住所を正規化
  4. 正規化した住所でジオコーディング

ジオコーディングができれば「地図の中心地点から近い順にソート」といったこともできなくはないです。

もちろんAPIを提供する会社は使いやすいインタフェースのAPIを提供すべきです。そうしなければマッシュアップサイトの質が低下してしまうばかりか、いずれ人々の頭から忘れ去られ、APIを提供する意味がなくなってしまいます。

しかし、微妙な仕様が提供された場合でもなんとか解決策を模索するのがプログラミングの面白さではないでしょうか。


コメントを投稿

(承認されるまでコメントは表示されません。)

API / 思うこと

English version

「APIが微妙なときでもなんとかする」を携帯で読む

前のエントリー: « Google AdSenseの紹介プログラムが積極プロモーション可能に
次のエントリー: 納豆の食べ過ぎはセレン中毒の恐れ - 納豆は1日100グラムまで »

トラックバック

このエントリーのトラックバックURL:

この一覧は、次のエントリーを参照しています: APIが微妙なときでもなんとかする:

» ホットペッパーAPIの仕様が微妙におしい件 from Web屋のネタ帳
最近公開されたホットペッパー.jp(hotpepper.jp)Webサービスに... [詳しくはこちら]

» ホットペッパーWebサービスが大幅パワーアップ from F.Ko-Jiの「一秒後は未来」
ホットペッパーWebサービスが微妙じゃなくなったようだ。 ■2007.02.16 店名サーチAPIを公開しました! 57万件を検索対象とした店名サーチAP... [詳しくはこちら]

このブログをRSSリーダーで簡単購読
Subscribe with livedoor Reader Add to Google My Yahoo!に追加 Subscribe with Fastladder Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録

タイトル:

URL:

リンク用HTMLタグ:

powered by Google Chart API

ケータイ会議4参加中
最近の注目記事
プロフィール
F.Ko-Ji
F.Ko-Ji (Koji Fukunaga)

ウェブエンジニアだけど技術の深いとこにはあまり興味がなくて、さくっとアイデアを形にするのが好きです。ブログには自分のアンテナにひっかかったものを色々書いてます。

詳しいプロフィールはこちら
Twitter
梅酒.in
powered by 梅酒.in
えもにゅ

↑ 気持ち記録サービス「えもにゅ」です

月別アーカイブ


<< July 2009
SuMoTuWeThFrSa
 1234
567891011
12131415161718
19202122232425
262728293031 
人気エントリー
TopHatenar
グリムス
毎日の歩行記録
携帯からのアクセスは
QRコード
http://mob.fkoji.com/