iPhoneアプリでYOLPのAPIを利用したスポット検索の機能を作成しています。
仕様としてはキーワード検索をして、YOLPでそれに該当もしくは類似した名称のランドマークを検索結果として表示させようと考えています。
実装は行ったのですが、この検索の際に「東京ドーム」「横浜アリーナ」「日本武道館」などの日本の有名なライブ会場を検索しても検索結果に出てきません
現在はYahoo!ローカルサーチAPIを使い、下記のような形でリクエストしてみています。
http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=<application id>=東京ドーム
この検索として下記のような東京ドームを名称に含んだものは出てくるのですが、実際の「東京ドーム」自体が出てきません。
・せたが屋 東京ドームシティー店
・ピッツェリア マルデナポリ 東京ドームシティラクーア店
・東京ドームホテル 札幌 レストラン パティオ
これは何かリクエストする際のパラメータの問題でしょうか。
もしくは別のAPIを使用したほうがいいでしょうか。
一回に 何件のデータが 返ってきているでしょうか?
検索されたデータ件数が多くて、1回のリクエストで全部のデータが、返ってきていないだけのような気がします。
例えば、下記のように
http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=アプリID&query=東京ドーム
とリクエストすると レスポンスの最初の方に 下記のような行があります。
この行をチェックされていますか?
<ResultInfo>
<Count>10</Count>
<Total>163</Total>
<Start>1</Start>
<Status>200</Status>
<Description/>
<Copyright/>
<Latency>0.073</Latency>
</ResultInfo>
Count は、出力結果を返した件数
Total は、検索条件と一致した件数
Start は、出力結果を返した位置
この行からは、「東京ドーム」のキーワードで、検索した結果、 163件のデータが見つかり、1件目から10件のデータを返したということがわかります。
11 件目以降のデータをとりたい場合は、
http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/localSearch?appid=アプリID&query=東京ドーム&start=11
のように 「start=開始位置」 を付加します。
これを total 件数のデータを取得するまで、繰り返します。
実際には、ソートやエリアで絞り込んだりしてから取得する方がいいと思います。
詳しくは、下記のリファレンスを参照ください。
http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/localsearch.html
少なくとも横浜アリーナはデフォルトの10件の中に入っているので、単に確認をきちんとしない人だということだと思います。
2015/08/22 23:00:41