- ベストアンサー
GoogleMapお店の情報をJSONで取得したい
GoogleMapで、 APIにお店の住所を投げ、 JSON形式でお店の情報を取得したいです。 どなたかご助言頂けましたら有難いです。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 私はkeyを持っていないので、placeの方は試すことができません。それなので、なんともわかりかねます。 >お手数をおかけしますが、 >もし何かおわかりでしたら、ご教示頂けますでしょうか? >"status" : "REQUEST_DENIED" が返されているようですので、一応、通信はできていてdeniedされているだけと解釈できるのではないでしょうか。 APIを見る限りでは https://developers.google.com/maps/documentation/places/?hl=ja#PlaceSearchRequests 『location(必須)- プレイス情報を取得する場所の緯度/経度。google.maps.LatLng オブジェクトとして指定します』 となっていますので、LatLngで指定可能と思われます。(というかLatLngで指定) 結果はjasonでの取得が可能なように読取れますが…? 一方でmaps APIのLatLngを見てみると https://developers.google.com/maps/documentation/javascript/reference?hl=ja#LatLng LatLng(lat:number, lng:number, noWrap?:boolean) となっているので、サンプルの『location=-33.8670522,151.1957362』って本当にこのままでOKなんだろうかって気もしますが… >ブラウザの画面から入力して >指定する事は出来ますでしょうか? 普通に画面からの入力を取得して、placeへのリクエストを作成すればよろしいかと思います。 >出来ましたら、緯度経度でなく、 >「東京都新宿区西落合1丁目1-14」のような >住所形式で投げたいのですが そのようなご質問だと解釈しましたので、mapのAPIをご紹介しておいた次第です。 私は、ほとんどgoogle mapsを使ったことは無いのですが、確か、Geocoderで住所からLatLngに変換できたはずです。 ここのサイトでも何度かそのようなご質問があったと記憶していますし、実験もしましたので、こちらに関しては可能です。 過去の質問を検索してみてください。 住所の入力値を、LatLngに変換してからplaceで検索にかければよろしいのではないかと思います。 https://developers.google.com/maps/documentation/javascript/reference?hl=ja#Geocoder (回答に推測の部分が多くて申し訳ありません。何分にもplaceを実験できないので…) <参考>Geocorder関連の過去ログ(もっとたくさんあります) http://okwave.jp/qa/q3296035.html http://okwave.jp/qa/q6578757.html http://okwave.jp/qa/q6233506.html http://okwave.jp/qa/q6933867.html
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
試してませんので、取得できる店情報がどの程度のものなのかは不明ですが… google.placeで検索できるみたいです。 https://developers.google.com/maps/documentation/places/?hl=ja ご質問に多少なりとも似ているサンプルとして、こんなサンプルがありました。 (住所を入れて検索してみてください) https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete?hl=ja map全体のAPIはこちら https://developers.google.com/maps/documentation/javascript/reference?hl=ja
お礼
fujillinさん 御回答いただき大変ありがとうございます。 >google.placeで検索できるみたいです。 >https://developers.google.com/maps/documentation/places/?hl=ja 頂いたこちらのAPIを確認する限り、 https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius;=500&types;=food&name;=harbour&sensor;=false&key;=自分のAPIKEY というURLをブラウザに入力すると、 シドニーのある地点から半径 500 m 以内にある名前に「harbour」を含むタイプ「food」のプレイスを検索してjsonが返ってくるはずですが、 APIKEYを自分の物に変更しても、そのままでも、 同じく結果が以下となってしまいます。 { "html_attributions" : [], "results" : [], "status" : "REQUEST_DENIED" } FirefoxやChromeで試し、デバッガには特にエラー等でておりません。 お手数をおかけしますが、 もし何かおわかりでしたら、ご教示頂けますでしょうか? また、APIに場所の位置を投げているlocation=-33.8670522,151.1957362 の部分ですが、この部分を、 ブラウザの画面から入力して 指定する事は出来ますでしょうか? 出来ましたら、緯度経度でなく、 「東京都新宿区西落合1丁目1-14」のような 住所形式で投げたいのですが、 PlacesAPIではちょっとなさそうで、 GeocodeのAPIにありましたが、 こちらは、お店の情報ではなく住所を入れたら 経度、緯度が返る、というもののようでした。 (ただし、Googleがフリーで公開している↓ http://code.google.com/p/gmaps-api-v3-googlebar/downloads/detail?name=gmaps-api-v3-googlebar_r19.zip&can=2&q= ↑上記からダウンロードできるソースでは、 住所からのお店検索が出来ましたが、 レスポンスがJSON形式では無かったので、 本件の要望と違っています) いつも大変お世話になってしまい済みません。 宜しくお願い致します。
お礼
有難うございます。 記載して頂いた過去ログ等を参考に、 住所から緯度経度変換して、 json形式でお店の情報を取得したいと思います。 尚、APIの例で取得できなかったJSON情報に関しては、 以下のサイトで使用しているもので、 typesをfoodに変更して表示する事ができました。 http://blog.motoo.net/2012/03/07/153334 ご助言、ご情報を頂きまして、ありがとうございました。