Google Maps Platform
Google Map のAPI
3種類のマップ、ルート、プレイス
3つのAPIがあります
その中からGoogle Place APIについて書いています
グーグルマップに表示されている施設の情報を取得できるWebAPIです
Contents
Google Place APIでGoogle Mapから施設情報取得
Google Place API プレイスでグーグルマップの施設検索
Googleマップに掲載されている様々な施設の情報を取ってくるために、Google Place APIを調べてみました
Google Maps PlatformのAPIの説明は、楽天やぐるなびに比べるとすこしAPI仕様書がわかりにくかったです
Google Maps Platformのドキュメントの説明と合わせて、XMLを実際に吐き出させてみて、どんな構造しているのかをみながら調べてみました
プレイス検索には、
場所の検索(Find Place requests)
周辺検索(Nearby Search requests)
テキスト検索(Text Search requests)
などいくつか種類がありますが、フリーワードで検索できるテキスト検索を使ってみます
Google Place API Place Searchで施設のテキスト検索
Google Place API Place Search テキスト検索リクエスト
テキスト検索リクエスト Text Search requests です
URLはこちらです
https://maps.googleapis.com/maps/api/place/textsearch/xml?key=YOUR_API_KEY&<parameters>
パラメータで query= にフリーキーワードを入れれば、適合度の高いプレイス情報を検索して、XMLで返してくれます
検索場所はlocationとradiusのパラメータで位置と半径を指定することができます
施設のジャンルはtypeで指定することが可能で、指定できるtypeの種類が規定されているのですが、けっこう多くの種類があり分類や階層化もされていないようで選ぶのは面倒だと思います
自由にキーワードを入力してもらうほうが望んだ検索結果になりそうです
検索エンジンのグーグルですから、ぴったり一致していないものでも、けっこう検索してきてくれます
検索結果件数がデータに含まれないので、たくさんの検索結果があるような際に複数ページで分割表示するような方法が面倒ではあるのですが
xml?の部分をjson?にするとJSONで取得できます
Google Place API Place Search テキスト検索リクエスト サンプルサイト
こちらはテキスト検索を使って、グーグルマップの施設検索を行うサンプルサイトです
フリーキーワードを入力して検索するだけです
位置のTypeも指定しない単純な検索ですのでお試しにどうぞ
Google Place API Place Details 施設詳細リクエスト
Google Place API Place Details 施設詳細リクエスト
プレイス検索で検索すると施設のプレイスID(place_id)が取得できます
このプレイスIDをパラメータにすることで、プレイス詳細がとれます
プレイス詳細リクエストのURLはこちです
https://maps.googleapis.com/maps/api/place/detailes/xml?key=YOUR_API_KEY&<parameters>
データの内容としては、楽天トラベルやぐるなびの施設情報に比べると少ないようです
名称、緯度経度、住所、電話番号、WebURL、オープンクローズ、オープン時間、写真、口コミ
といったところ
施設の内容や特徴はないようです
もうちょっと情報が欲しかったのですかれども、口コミ関係については、グーグルマップのローカルガイドの方たちが記入した口コミとかアップロードした写真が取得できます
上記のサンプルサイトはプレイス詳細は使用していません
テキスト検索結果のリストをグーグルマップ付きで表示していますので、プレイス詳細で取れるようなデータは地図をクリックしてみてくださいという形にしてあります
Google MapAPIの場合、APIの呼び出し回数や取得する情報の種類によって費用がかかりますから節約が必要です
Google Place API Place Details 取得データ
プレイス検索で取得するデータはリクエストのfieldsで指定することができます
fieldsに何も指定しないと取得可能なデータが全部取れますが、取得するデータの種類によってAPI利用料金が変わりますから、必要なデータに限るほうがよいと思います
Basicは基本料金に含む、ContactとAtmosphereはそれぞれ追加料金が必要ということになります
以下のようなデータが取得できます
基本的なデータ(Basic):名称(name)、住所(formatted_address)、位置情報(geometry)、プレイスID(place_id)、写真(photo)、URL(url)など
コンタクト(Contact):電話(formatted_phone_number)、営業時間(opening_hours)、ウェブサイト(website)など
Atmosphere:評価(rating)、レビュー(review)など
緯度経度(lat、lon)は位置情報(geometry)の中のlocationにあります
グーグルマップに登録されている口コミはレビュー(review)から取得できます
Google Place API Place Photos 写真の取得
Google Place API Place Photos 写真の取得
Place Photosを利用すると写真を表示することができます
https://maps.googleapis.com/maps/api/place/photo?key=YOUR_API_KEY&<parameters>
パラメータphotoreferenceに、Place SearchやPlace Detailで取得したphotosあるいはphotoの中のphoto_referenceを設定すると写真が取得できます
maxwidth、maxheightで希望のサイズを指定することができます
<img src=””>のsrcのurlに設定することで写真を表示することができます
Place PhotosもPlace Detailとは別料金で費用がかかりますからご注意ください
Google Place API 合わせて利用 WebAPIについて
Google Place API 連携しよう WebAPI
WordPressやPHPプログラミング、WebAPIの使い方、簡単なところから実際に使ってみて、作成してみて、イメージをつかみながらやってみましょう
Google Place APIは有料ですが、無料で施設などの情報を検索できるWebAPIもあります
PHPでWebAPIを利用する際の説明はこちらの記事でぐるなびAPIを例にして書いていますので参考にしてください
オリジナルWEBサイト制作 PHP・Laravelを学ぼう
【PHP/Laravelコース】PHP/Laravelを学んでオリジナルWEBサイト制作無料の説明動画配信、無料プログラミング体験、無料オンライン相談を実施しています
キャリアアップ・転職・副業・複業・兼業へのチャレンジを考えるなら、無料キャリアカウンセリング、 副業コースもあります
PHP/Laravelを学んでオリジナルサービス開発