SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Yahoo! Open Local Platform Hacks

YOLP Hacks: ローカルサーチAPIの使い方 ~パラメーターを極める!

Yahoo! Open Local Platform Hacks 第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

詳細な検索機能を利用する

 YOLPカセットギャラリーからダウンロードしたサンプルページでは、簡単な検索しか行うことができません。詳細な検索を行う場合は、ローカルサーチAPIを利用します。ローカルサーチAPIは、検索結果をXML、JSONPで返却します。

1.基本パラメーター

 ローカルサーチAPIは、リクエストURL(http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch)に様々なパラメーターを追加することで、詳細な検索条件を指定できます。

 カセットの指定はcidパラメーターで行います。YOLPカセットギャラリーで、カセットの詳細情報にある「カセットID」を指定します。複数指定する場合は、カンマでつなげます。cidを指定しない場合は、YOLPカセットギャラリーで公開されている全てのカセットが検索対象になります。キーワードは、queryパラメーターにUTF-8でURLエンコードしたものを指定してください。

 下の例では、先ほどのYOLPカセットギャラリーで選択した2つのカセットに対して、「東京」というキーワードで検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&cid=d115e2a62c8f28cb03a493dc407fa03f,132c700e0ebf5a1d386e9b725d7d1e6b&query=%E6%9D%B1%E4%BA%AC

近隣にあるPOIを検索する

 ある地点の周辺にあるPOIを検索する場合、中心点を指定するlon/latパラメーターと検索する距離を指定するdistパラメーターを追加します。lon/latパラメーターは、世界測地系の経度/緯度、distはkm単位で指定します。JavaScriptマップAPIを利用している場合、地図の中心座標はMapクラスのgetCenter()メソッドで取得できます。また、sortパラメーターを指定すると、検索結果の並び順を変えることができます。

 下の例では、すべてのカセットから東京タワー周辺1.5km以内にあるコンビニを近い順に検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&query=%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8B&lat=35.65861844679345&lon=139.74540946810274&dist=1.5&sort=dist

表示している範囲内のPOIを検索する

 現在表示している範囲にあるPOIを検索する場合、表示範囲を指定するbboxパラメーターを追加します。bboxパラメーターには矩形範囲の左下経度、左下緯度、右上経度、右上緯度をlon/latパラメーターと同様、世界測地系の経度/緯度を指定します。JavaScriptマップAPIを利用している場合、表示範囲はMapクラスのgetBounds()メソッドで取得できます。

 下の例では、すべてのカセットから東京ミッドタウンと六本木ヒルズが表示される程度の表示範囲内にある寿司屋を検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&query=%E5%AF%BF%E5%8F%B8&bbox=139.72328521778707,35.65759879587571,139.74045135548238,35.66805892091279

特定の行政区域内にあるPOIを検索する

 特定の行政区(都道府県、市区町村など)にあるPOIを検索する場合、行政コードを指定するacパラメーターを追加します。acパラメーターには、住所コード(JIS X 0401)の2桁(都道府県)もしくは5桁(市区町村)を指定します。

 下の例では、東京都港区内にあるラーメン店を検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&query=%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3&ac=13103

特定の業種のPOIを検索する

 業種マスターAPIと組み合わせることで、特定の業種のPOIのみを検索できます。業種の指定は、gcパラメーターに業種コードを指定します。業種コードは3階層の構造体になっており、大分類が2桁、中分類が4桁、小分類が7桁になっています。

 下の例では、東京都内にある畳店(0410005)を検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&gc=0410005&ac=13

クーポンのあるPOIを検索する

 ローカルサーチAPIでは、クーポン情報のあるPOIのみを抽出できます。パラメーターにcoupon=trueを追加します。

 下の例では、クーポン情報がある渋谷駅周辺の居酒屋を検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&query=%E5%B1%85%E9%85%92%E5%B1%8B&lon=139.7017727955547&lat=35.65851613933086&dist=1&coupon=true

クレジットカードや駐車場が利用可能なPOIを検索する

 クーポン情報のあるPOIの他にも、クレジットカードで利用可能なPOIのみを検索するcreditcardパラメーターや、駐車場のあるPOIのみを検索するparkingパラメーターがあります。それぞれ、値にはtrueを指定します。

 下の例では、駐車場があり、クレジットカードが利用可能な新宿駅周辺のフランス料理店を検索します。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&gc=0102005&lon=139.6998272943479&lat=35.69073464614311&dist=1&creditcard=true&parking=true

POIの詳細情報を取得する

 ローカルサーチAPIでは、用途によって返却されるデータの項目数を変更できます。detailパラメーターに指定する値として、データ量の少ない順に、simple、standard、fullの3種類があり、デフォルトはstandardです。simpleは地図上にPOIを表示する最低限の情報を表示しているため、地図上に大量にPOIを表示させるのに適しています。

 standardはsimpleのデータ項目に、リスト表示に必要な項目が追加されます。fullはそのPOIに登録されているデータすべてを返却するので、詳細ページで使用するのに適しています。レスポンスを向上させるために、それぞれの用途にあったdetailを選択してください。

図5  detailによる情報量のイメージ
図5  detailによる情報量のイメージ

 詳細ページを作成するためには、POIを特定する必要があります。POIを特定するには、uidとgidの2種類を選択できます。uidの値は、POIごとにユニークな値となっています。gidは店舗名寄せAPIから取得できる値で、全てのカセットを比較し、名称や緯度経度、電話番号などから同一と思われるPOIに共通して付与される値です。uidで指定する場合YDF/Feature/Property/Uidタグの値を、gidで指定する場合はYDF/Feature/Gidタグの値をそれぞれのパラメーターに指定します。

 下の例は、六本木ヒルズを示す全てのPOIの情報を表示する詳細ページ用のパラメーターです。

http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<あなたのアプリケーションID>
&detail=full&gid=PWBadEz9VEA

次のページ
検索結果を地図上にマッピングする

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Yahoo! Open Local Platform Hacks連載記事一覧

もっと読む

この記事の著者

橘 直弘(ヤフー株式会社)(タチバナ ナオヒロ(ヤフーカブシキガイシャ))

大阪工業大学にてGISと出逢い、地図に関する業務に携わって10年。ランチ日記として始めた写真と位置情報を共有するSNSで嫁を見つける。現在は「Yahoo! Open Local Platform(略称:YOLP)」、「Yahoo!地図」やメイン検索のバックエンドであるローカルサーチAPIの企画・開発...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6068 2011/08/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング