詳細な検索機能を利用する
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を選択してください。
詳細ページを作成するためには、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