2019年12月11日水曜日

Street View Static APIの利用

Street View Static APIを利用して、緯度・経度情報から周りの様子を取得します。
(1) Google Cloud Consoleの設定
https://developers.google.com/maps/documentation/streetview/get-api-key?hl=ja
から設定方法を確認します。
今回は無料トライアルを利用しました。
(i) 説明にある通り、APIとサービス -> 認証情報にいきます。
認証情報を作成->APIキー
キーを制限した方がいいですが、今回は制限せずにそのままとします。

次にStreet View Static APIを有効にします。
左側のメニューから、Google Map -> APIを選択します。
Street View Static APIを有効にします。
APIを利用して画像が見えるか試してみます。
ブラウザのアドレス欄に
https://maps.googleapis.com/maps/api/streetview?location=34.737624,137.961193&size=456x456&heading=0&pitch=0&key=APIキー
とすると、下記のような画像が見えます。

(2) プログラムで画像を取得し、画像を保存します。
APIキーを使って毎回画像を表示すると、利用料がかかるので、画像を保存します。
テーブル「streets」構造は次の形です。
photoX_YではXはheadingで0-360を指定します。ここでは0,90,180,270で回します。Yはpitchで今回は0と+45にしています。これらのフィールドは対応する画像のファイル名が入ります。
画像のファイル名は後から入れるので、Null指定をしておきます。緯度・経度は登録時に入力します。
今回はcakephpの環境で作成しています。
[StreetsController.php]
既存であるviewアクションをコピーしてsviewアクションを作ります。
https://gist.github.com/smzn/fda746432f7e499186c39bf00e32ed18

[sview.ctp]
上記のsviewアクションに対するビューを作成します。
https://gist.github.com/smzn/6f9f583f37605b94cb5f104fbc62e81e


ファイルはstreet+ID_heading_pitch.pngの形でwebroot/img/image/に保存されます。
保存したファイルを表示するようにします。
アクションはviewをそっくりコピーしただけのpviewアクションを作っておきます。
また保存してある画像ファイルを表示するpview.ctpを作成します。
[pview.ctp]
https://gist.github.com/smzn/94340e05e7f0206a2993417a307c72b8

実行順序
緯度・経度を登録
画像取得ボタンを作成して、sviewアクションを呼び出す。
これで画像が保存される。
次に、画像閲覧ボタンを作成し、pviewアクションを呼び出す。
保存してあった画像ファイルが閲覧できる


0 件のコメント:

コメントを投稿