RSS/SEO/Google/マッシュアップ/ちょっとした豆知識/エンタメ系など
fkoji.com > F.Ko-Jiの「一秒後は未来」 > APIが微妙なときでもなんとかする
2007 01 11

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を提供する意味がなくなってしまいます。

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

はてなブックマーク数 livedoor クリップ Buzzurl

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

なんかいろいろ

このブログの読者はこんなブログも読んでます。
あわせて読みたい

はてなブックマークカウンター

track feed

フィードメーター - F.Ko-Jiの「一秒後は未来」

スカウター : F.Ko-Jiの「一秒後は未来」

Firefox meter

携帯からのアクセスは

QRコード
http://mob.fkoji.com/