GooglePlaceApiを使ってみるメモ。
GooglePlaceApi使ってみた。
ちょっと、まとまりなく、断片的な内容で、本当にメモ程度の記事。
GooglePlaceApiとは
GoogleMapでもできるじゃんと思うかもしれないが、
GoogleMapの検索でひっかかる場所は殆ど地名。
細かな店舗/有名スポット等々はGoogleMapではひっかからない。
そこでGooglePlaceAPIを使う。
2013年10月現在、まだ試験版なので注意。
参考
- 日本語公式ページ(但し、一部しかない)
- 英語公式
手順
概要
- プレイス検索:要するに4sqみたいな、場所×キーワードで検索
- テキスト検索:Googleで「新宿 ラーメン」でスポットがひっかかるようなイメージ。キーワードだけでスポットを検索する。コレが出来るのがこのAPIの強み。
- プレイス詳細:その通り、プレイスの詳細
勿論、他にスポット追加等色々あった。
ここでは、この3つ試してみる。
プレイス検索
とりあえず、プレイス検索してみる。
緯度経度と食べ物屋で検索してみる。
- 渋谷周辺の検索
- 上記のデータよりphoto/referenceを取得してみる
テキスト検索
Googleで「新宿 ラーメン」で検索しているのと同じイメージ
詳細検索
使ってみて気になった事
検索APIで、nameを指定しても、nameにひっかからない事が多数ある様子(特に全角が怪しい)
代わりに、keywordで同じ語を指定すると、精度が上がった。(こちらは全角でもちゃんとひっかかる)
ただ、それでも、1件目に本当に欲しい店舗がひっかかるかと言うと、そうでもないみたい。
例えば、渋谷の松屋を検索してるのに、ファミレスが一件目にひっかかったりする。
ruby gem
rubyの方はこちら。作ってる人がいた。
https://github.com/marceldegraaf/google_places
@client = GooglePlaces::Client.new(XXXXXXXXXXXXXXX) # XXXXXXXXXXXXXXXX = your key! @client.spots_by_query("渋谷 ラーメン") @client.spots(reference)
レスポンス
text searchの結果はこんな感じ。
データは名前・緯度・住所・ジャンル(type)等。
ここまでは普通だが、面白いのは、評価と価格LVがある。
※以下、面倒くさそうな所は******で伏せてる
{ "debug_info" : [], "html_attributions" : [], "next_page_token" : "*********************************", "results" : [ { "formatted_address" : "日本, 東京都渋谷区神南1丁目*****", "geometry" : { "location" : { "lat" : 35.663574, "lng" : 139.699362 } }, "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png", "id" : "c8f2e67090179c886318c8439990d828b18c3872", "name" : "カフェ ********", "price_level" : 2, "rating" : 3.9, "reference" : "CoQBeQAAACpzvbxMwKDC1NKwRAD3HVSw0nTReNSFwJgkCjkbjwOS5hXy-7WVzDHlxAbdIkHQIVwWHt22YRDKJAuk_zABPZMKXvC2-g16j3z4KVYPuJ7xgZuDdezT9si0TKBeZ2lS7wNT4dXeJ1abt-oOv06w1YlscMKig3L4G6Vbwz9ehaY7EhA9yXxRw_Fyx3Iv9y4ryXJYGhTJUN7n61MzhJmyqnkOw2x7U6F-yw", "types" : [ "cafe", "food", "establishment" ] }, { "formatted_address" : "日本, 東京都渋谷区宇田川町**********", "geometry" : { "location" : { "lat" : 35.662249, "lng" : 139.69551 } }, "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png", "id" : "54a323cfcaab07e75269324942da33604434d1b2", "name" : "カフエ ***** 渋谷店", "opening_hours" : { "open_now" : true }, "photos" : [ { "height" : 853, "html_attributions" : [], "photo_reference" : "CoQC-wAAANaUZDFBM1vcgeD7Nz3Qm668CFbQwbsxHe4TOlKipHCTrCc-e0Uu6eELescVdV57X5KhuL6n5s-BH3ViF4-KL7V_C5VW-4mpfNU-swDQpvPDkgvfFzKCKvrBF8_8rcL6wkHv2bC8E7nN6O0mYhZpjXyO5fxNLsHKJmjEBS0YnqFGKJKY04lsnvOHKhXBzNGVWZpf1QM4seRsV97o4EuINKQ_TZ5Hx-rPS4sIt-7K7yis0AGJvGj8EHI_48mTjvmCKcZuH6AhXiDsbxqu2j2t8i0hvPmHYOXcTL17-Q40rRiIAiQFIvavK2IIa2NVCCQVe_Hj65ATLfpZuOcSQltuAUwSEKNi8fLqeiFWtgEbqmHk0_saFBclFLUDPM2yWQt6i57yzm_slVmL", "width" : 1280 } ], "rating" : 4.1, "reference" : "CoQBfQAAAGkUh8-vFldUs6xEA1tFyuF9sk49Xxos_h7FqARyVaBJ1gtiwRyA-wfDxNJVgN0pmOHkNe1LgJq4Tx-8Q-1duO5zz3E8YWCtNGxPuMwKxrVPYczzEEXWYu46Z0r2KfncdxF-UFu_ej1w24MW9vX7LGHZv3VDwy0CsOMs9MMOOVvlEhClHH6RaYTNHngU3_fZ0SBTGhRXY5c2vjgHze0Kk3KSoz36FqTaAw", "types" : [ "cafe", "food", "establishment" ] },
詳細
以下が、スポット詳細のレスポンス。
結構、口コミが入ってる。
{ "debug_info" : [], "html_attributions" : [], "result" : { "address_components" : [ { "long_name" : "************", "short_name" : "****************", "types" : [ "street_number" ] }, { "long_name" : "吉祥寺本町", "short_name" : "吉祥寺本町", "types" : [ "sublocality", "political" ] }, { "long_name" : "武蔵野市", "short_name" : "武蔵野市", "types" : [ "locality", "political" ] }, { "long_name" : "東京都", "short_name" : "東京都", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "JP", "short_name" : "JP", "types" : [ "country", "political" ] }, { "long_name" : "180-0004", "short_name" : "180-0004", "types" : [ "postal_code" ] } ], "formatted_address" : "日本, 東京都武蔵野市吉祥寺本町******* 吉祥寺*************ビルB1", "formatted_phone_number" : "****-**-****", "geometry" : { "location" : { "lat" : 35.704155, "lng" : 139.580957 } }, "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png", "id" : "6db8f62cc9dc7dba17f116dc2d4e293287d1c9ad", "international_phone_number" : "+81 422-23-8186", "name" : "******* 吉祥寺店", "opening_hours" : { "open_now" : true, "periods" : [ { "close" : { "day" : 1, "time" : "0400" }, "open" : { "day" : 0, "time" : "1100" } }, ・・・略・・・・ ] }, "photos" : [ { "height" : 1280, "html_attributions" : [], "photo_reference" : "CvQB5gAAADqSlV9t5qcineEXNlM_l9g8QL2pXytf04kS_39AUmWyv07OI7dPwJMiW-2kLU6JuDRJRn1v4sOGOL8bVeVxs1gVssLDxL5G7XR3c9wNBGR2aUlJqZ6WqZUZDZDhZ-f57GnfvzHrZVofHH80rvXsz-DXwO-8EfVYHgx1peO5MVakwtktLDqjo0ZziTeeXdmxdBHrbdxDp9PdPnTxEqrn36I2pxP0SK6L0sB1j-wUxQKRDbQz_Pd9AuG141lc8_ripH38CcltIeMN7OYkHaMduMsdpF9zrUSidukRnsIzaPS7wQvm_6UcpvrsUiqkwbb6HhIQzdIh8EwdByLz8Sekmp3wYxoUyiywg67HD-XRIDvHoNNQRPUD22Y", "width" : 853 }, ・・・略・・・・ ], "price_level" : 1, "rating" : 3.7, "reference" : "CoQBdAAAAFiU51mR7ZPeCxa_13OUoLtgW49WW6MH81a-4UoTLK6hexnEuoaKqYjGosDIHgyvaiewSd5csp73yn7Bzln5ZQsvgrJw6prhvYw9shgak1lqDrn59KgP8YUhIy3u9ONnL2ULlD1omomYJ9l7DYtF4hAdoxsO2bPrIq-hizNWqcYgEhC_t8Q99QQ39iC61-TetPiIGhSPJvCtv3lJCqYEKVMBBOYXSUhxvA", "reviews" : [ { "aspects" : [ { "rating" : 3, "type" : "food" }, { "rating" : 2, "type" : "decor" }, { "rating" : 2, "type" : "service" } ], "author_name" : "*********", "author_url" : "https://plus.google.com/********************", "text" : "*************************このお店のラーメンはハマる。", "time" : 1370669370 }, ・・・略・・・・ ], "types" : [ "restaurant", "food", "establishment" ], "url" : "https://plus.google.com/**************************/about?hl=ja", "utc_offset" : 540, "vicinity" : "武蔵野市吉祥寺本町*************** 吉祥寺**********ビルB1", "website" : "http://*******************" }, "status" : "OK"