kazumich.log

SmartBlock に地図を挿入する方法を考えてみる

この記事は公開日より年以上経過しています

情報が古くなっている可能性がありますのでご注意ください。

先日、SmartBlock に、地図ブロックが欲しいという要望があったので、その方法を少し考えてみたいと思います。

a-blog cms の地図ユニットでは


地図ユニットでは、実際の地図に自由に動かせるピンとズームレベルの調整を実際の地図上でできるようになっており、細かい緯度経度の数値については手で触る必要はない状況ではあります。しかし、このユニットのようなものを新しく UI を用意するのは大変なので、他の方法を考えてみます。

SmartBlock の YouTube 対応について

YouTubeの場合には、URLを入力することで YouTube である事と 動画ID が分かって、動画を表示させるための iframe を組み立てる事ができます。


iframe をそのまま入力できるようにする

Google Maps を貼れるようにするというより汎用的に、色々な iframe タグをそのまま受け入れる事ができるようにするというプランです。


iframe 側にサイズの指定などがあり、キレイにコンテンツを埋め込めないこともあるかもしれませんが、どんなものでも対応にできるのはアリかと思います。ボタンのデザインはこんなでいいだろうか?

Embedブロックを拡張する

SmartBlock の YouTube対応を行なっているブロックの名前は Embedブロック というらしい。今のところ YouTube にしか対応していないようなので、これを拡張するのが2つ目のプランになります。

例えば、ベースキャンプ名古屋 を表示させるためのリンクを用意してみます。

https://www.google.co.jp/maps/search/%E3%83%99%E3%83%BC%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3%E3%83%97%E5%90%8D%E5%8F%A4%E5%B1%8B/@35.176842,136.8931377,15z

これを iframe で表示させようとしても残念ながら表示させる事ができません。

<iframe src="https://www.google.co.jp/maps/search/%E3%83%99%E3%83%BC%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3%E3%83%97%E5%90%8D%E5%8F%A4%E5%B1%8B/@35.176842,136.8931377,15z" 
width="100%" height="450"></iframe>

どうするべきかを色々調べてみたところ Maps Embed API というものを利用するといい事が分かりました。 Google Maps を iframe で利用するための API という事で、これを使えばいけそうです。

https://www.google.com/maps/embed/v1/{MODE}?{PARAMETER}

MODE には



place 場所や住所を表示
search 検索したお店などを表示
directions 2点間のルートを表示
view マーカーやルートを表示しない地図を表示
streetview ストリートビューを表示

PARAMETER には



q 住所、名称、緯度経度など
key API キー
center 経度,緯度
zoom ズームレベル

上記を設定することで、そのままの URL を iframe で利用できなかった Google Maps も iframe で利用が可能になります。APIキーの設定が少しハードルになりますが、今のところ Maps JavaScript API のように利用によっては費用がかかることはないとのことです。

Google Maps の URL を調べる

例えば「ベースキャンプ名古屋」で検索すると URL は

https://www.google.co.jp/maps/place/%E3%83%99%E3%83%BC%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3%E3%83%97%E5%90%8D%E5%8F%A4%E5%B1%8B/@35.172764,136.885233,17z/data=!3m2!4b1!5s0x600376dc919f1feb:0xee5e0ae169e6ccf3!4m5!3m4!1s0x600376dc919b8655:0x5bbf0168ec8292bb!8m2!3d35.172764!4d136.887427

のようになり、読みやすく書くと place/ベースキャンプ名古屋/@緯度,経度,ズームレベルz ..... のようになります。 これらから必要な情報を取得して URL を組み立て直すと

https://www.google.com/maps/embed/v1/place?q=ベースキャンプ名古屋&center=緯度,経度&zoom=ズームレベル&key=APIキー

のようになります。

次に「ラーメン屋」で検索すると

https://www.google.com/maps/search/%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3%E5%B1%8B/@35.1727749,136.8852676,17z/data=!3m1!4b1

のようになりました。この場合では MODE が search になります。

https://www.google.com/maps/embed/v1/search?q=ラーメン屋&center=緯度,経度&zoom=ズームレベル&key=APIキー

MODE が place と search に対応するくらいで大丈夫な気もしますが、directions や view なども頑張ってみてもいいかもしれません。

短縮URLの対応をどうするんだろ?

ブラウザの Google Maps で共有リンクを取得すると短縮URLになります。これだと、URLを解析するだけで対応ができません。また、スマホのアプリからの共有機能で情報をコピーしてもURLは短縮されてしまいます。


いろいろ調べていたところで、以下のような記事を見つけました。

ここにあるようなコードで短縮URLを戻してURLを組み立てるといいかもしれません。

「名古屋駅」の短縮URL は、以下のような感じになります。

https://goo.gl/maps/F4kxDQmPukVvF5ye8

これを、上記の外部サイトで紹介されていた関数 expand_url を利用して展開すると、

https://www.google.co.jp/maps/place/%E5%90%8D%E5%8F%A4%E5%B1%8B%E9%A7%85/@35.170915,136.8815369,17z/data=!3m1!4b1!4m5!3m4!1s0x600376e794d78b89:0x81f7204bf8261663!8m2!3d35.170915!4d136.8815369

のようになります。しかし、「ベースキャンプ名古屋」の短縮URLは

https://g.page/basecamp758?share

という感じになっており、Googleマイビジネス【プロフィールの略称】というものでした。この機能は、今調べてみると昨年夏に終了しており辞めることはできても、新しく作ることができないようです。

「名古屋駅」と同様の expand_url では、うまく展開できませんでした。

最後に

今回は SmartBlock のブロックの改良をするための方法を少し調べ、こんな感じの実装をやってみて欲しいを伝えるために書いてみました。いつ、誰にお願いするか分かりませんが、そのうち改良されて便利に使えるようになるといいなって思っています。


更新

Recommendation

Google マップ Photo Sphere にパノラマ写真を投稿するには

今回は Google マップにパノラマ写真を公開する方法を紹介してみたいと思います。 1. 撮影する 一通り Google マップ に投稿するところまで試してみる事ができましたので報告しておきます。使ったカメラは RICOH THETA という1回の撮影で360度撮る事ができるカメラです。撮った写真は以下のような感じの写真になっています。 2. XMP付きJPEGデータ を作成 カメラから取り込んだ時点で1枚に繋がっているので、Mac での作業は RICOH THETA for Windows(R) Mac というアプリで表示させて、ファイル... > 頂点補正書き出し > XMP付きJPEGデータ を選択し、JPEGファイルを書き出します。 3. Google+ 写真 にアップロード どうしたらいいのか最初分かりませんでしたが、まずは Google + 写真 にアップロードします。最初は Android じゃないとダメなのかとか、試行錯誤やっていましたが、分かれば簡単でした。 4. Google ビュー に登録 Google ビュー にアクセスして、右上の青いカメラアイコンをクリックします。 Google 写真 に投稿されている写真から選択します。 各写真に名前をつけておきます。公開ボタンをクリックする事でまずは投稿が完了します。 この時点では、承認依頼中という事で Google マップに一般公開されません。次は、複数の写真を繋いでみたいと思います。 5. 複数の写真をリンクする ( コンステレーション ) 360度のパノラマ写真を1つで見るのもいいですが、できれば Google ストリートビュー のように移動して次の場所に行けるようにしたいですよね。 その作業をするには、画像をリンクする事になります。 写真の持っている緯度・経度の情報から地図に写真が配置され、線で繋がれています。これをドラッグして移動したり写真の向きを設定していきます。この作業は、結構楽しいですよ。 写真の緯度経度の調整は、その写真がどこなのかを指示する部分はドラッグして移動します。各写真のつながりが青い線で繋いであり、点線は移動できるようにする候補として表示されています。点線をクリックすると青い移動できる線になります。 どちらが北なのかを写真を回して設定すると作業が完了です。この向きの調整が面倒な感じです。 上記のデータをキレイにしたのが下のキャプチャです。これで 14件の写真を位置関係を現実と同様に設定し移動できるようになります。 公開ボタンをクリックすると、14枚並んでいた画像がリンクされ1つになりました。マップには未掲載ですが、非公開という事ではなく見る事は可能です。 公開ボタンをクリックすると、14枚並んでいた画像がリンクされ1つになりました。マップには未掲載ですが、非公開という事ではなく見る事は可能です。 ベースキャンプ名古屋 ビュー 6. 承認確認 しばらくすると、Google のチェックが入り Google マップに掲載される事になります。 残念ながら、未承認の画像にリンクしている という理由でリンクされた 14枚の写真は公開する事ができませんでした。 下にあるコレクションの画像を見ると、C:アップルップル前 と L:ベースキャンプ名古屋 集中スペース が承認されなかったようです。前回のテストでアップした時と同じデータであっても承認されたり、されなかったりな状況です。 Photo Sphere ポリシー 別のテストの時のキャプチャも掲載しておきます。 うまくいった時と、ダメだった時のものです。承認されなかったものをリンクから外す事で、公開ができるようになります。 リンクされなかったものを単体で確認すると、公共の場所ではない という理由で却下されている事が分かりました。 7. 承認確認後のコンステレーション NGだった写真をリンクを消して14枚だったものを12枚に減らし、公開のボタンをクリックします。NGのものを外せば、その時点で公開可能な写真は Google マップに公開する事ができるようです。 8. 無事、公開されました! 画面の上に ビュー というのが残っているのは、Google ビュー というサービスの中にいる状態です。この時には私のアイコンがついた状態で、ベースキャンプ名古屋 玄関 って表示が出ています。ここに Google マップで見る ってリンクがありますね。 この下のキャプチャが、Google マップ で表示された状態です。 9. 今後の課題 まずは作ったものを公開するところまではできました。しかし、いくつかの課題があります。 画質の問題 やはり RICOH THETA では、画素数的に足りないです。スマホの小さな画面で見るには大丈夫ですが、Mac で大きく見たときに ビューのトップページ に表示されている写真と比べると全然ダメです。 THETA のメリットは1回で全部写す事ができる事なので、人の集合写真を撮ったりするのにはいいのですが、空間を撮って残すという事であると役不足のようです。 機会があれば、安原製作所 SONY-Eマウント用 MADOKA 180 を利用し、NEX-5R で撮影できるようにしたい! これに Ultralight Panohead for Yasuhara Madoka E (+7°) TOM SHOT 360 というのを使うと完璧かなって思ってます。 Google ストリートビューとの接続 今回の作業で Google マップとの接続が可能だと思っていたのですが、どうやらそういう事ではなかったようです。以前、RICOH THETA を使ってインドアビューを公開しよう というエントリーを書いていた時に紹介していたものでは、できていましたが何かが違うようです。 ここら辺について詳しい人がいれば教えて欲しいです。 私の推測では、業者の撮影したインドアビューというものでないと公式の Google マップからリンクされないんじゃないかと思っています。この認定パートナーに電話してみるとかがいいかもしれません。 Google 認定パートナーを見つける – 概要 – Google マップ

RICOH THETA を使ってインドアビューを公開しよう

下北沢オープンソースカフェ のインドアビューを見て、これやりたい! 欲しい! って思ったので、その事について書いてみたいと思います。皆さんは、ストリートビューから自作のインドアビューにシームレスに移動できるって知ってましたか? 1点、実際にどうやって作ったのか聞いてないのですが、こうやって作ってるんだろうなって思って調べながら書きつつ、購入計画を進めていこうと思います。 RICOH THETA (360度を1回で撮影できるデジカメ) まずは、これを使うのがいいんだろうと思っています。Photo Sphere に対応したものであれば、何でもいいかもしれませんが、一発撮りでできるのはコレなんでしょう。 Photo Sphere このコンテンツは見た事が無かったのですが、Photo Sphere というので、自前のパノラマ写真を Google のサービスに公開する事ができるようです。 マップのパートナーになる というところを見ると、知らなかったイロイロな事が出てきます。 今回のインドアビュー以外にも、インドアマップもアップロードしたりする事が可能になっている事に驚きます。 Photo Sphere ヘルプ ビューと Photo Sphere について Google マップやビューで画像を見る Photo Sphere ポリシー Photo Sphere 写真を共有する Photo Sphere 写真を投稿する Photo Sphere 写真を作成する Photo Sphere 写真の編集と削除 Photo Sphere 写真をリンクする(コンステレーション) リンクした Photo Sphere 写真(コンステレーション)を管理する と言ってもこれから まずは、どんな事ができるか調べてみようと書き始めたエントリーですので、まずは THETA を買ってみようと思います。価格.com で調べてみたら amazon が一番安かったです。 価格.com - リコー RICOH THETA 価格比較 追記 最初に例に出していた 下北沢オープンソースカフェ の インドアビュー は、THETA ではないようです。オーナーが留守の時に撮ったもので、どうやって撮ったかは分からないようです。

Contact

お問い合わせはこちら