Google SketchUpとGoogleマップのコラボ
タイトルほど大袈裟な話でもないのですが、以前、Google SketchUpで緯度・経度や真北の角度を設定するための簡単なRubyスクリプトを書きました。このスクリプトでは緯度・経度を数値入力する必要があったため、別途本館で公開している「緯度・経度取得ページ」のようなツールで緯度・経度を取得し、SketchUpに転記しなければなりません。面倒なのでSketchUp上で地図をクリックすれば緯度・経度が取得できるようにならないかと思っていました。
そうこうするうちにGoogle SketchUp 6がリリースされ、SketchUp 6のRubyのリファレンスを眺めていたら、WebDialogというクラスが追加されているのに気付きました。このWebDialogクラスを使用するとWebページをSketchUpのUIとして利用でき、実際、3D WarehouseやLearning CenterはこのWebDialogクラスで実装されているようです。で、先ほどの「緯度・経度取得ページ」と組み合わせれば、Google SketchUpからWebサーバ上にあるWebページを呼び出して、Googleマップ経由で緯度・経度が取得できそうだと思い、作成したのが今回の「位置設定2」Rubyスクリプト(SetLocation2.rb)です。ちょっとGoogleマップのボタンなどが文字化けしてますが...あと、エラー処理をしていない、というよりRubyでエラーを処理する方法がわかりませんので、変な数値を入力すると落ちるかも知れません...(^^ゞ
Google SketchUp 6の[Plugins]フォルダに「SetLocation2.rb」ファイルをコピーし、Google SketchUp 6を起動すると、[Tools]メニューに[位置設定2]が追加されます。あとはまぁ、見ての通りです。(^^ゞ 本館の「緯度・経度取得ページ」と同様、住所やランドマーク名で検索することもできます。ただし、Windows XP + Internet Explorer 7環境でしか動作確認していませんので、他のOSやブラウザで動作するかどうかはわかりません。また、Googleマップを表示しているWebページは本館のWebサーバ上に置いてありますが、将来都合によりWebページを移動したり削除する可能性もあります。
ついでといっては何ですが、数値入力版の位置設定スクリプトと日影アニメーション作成(用静止画出力)スクリプトも日本語化(^^ゞ して再掲載します。日影アニメーション作成(用静止画出力)スクリプトは、Google SketchUpに動画出力機能が追加されたので出番がなくなりそうな気もしますが、時刻が正確にわかるのでそれなりに利用できる場面もあるかなと...
>> SetLocation.rb (2KB)
位置設定スクリプト2 (Googleマップ対応版)
>> SetLocation2.rb (2KB)
日影アニメーション作成(用静止画出力)スクリプト
>> ShadowImages.rb (2KB)
Comments: (6)
Trackback:
http://pub.ne.jp/tb.php/535502
SketchUpの中でGoogleMapがズームアップされているなんて、座標が分からなくともMapで示せばOKなんですから。
位置設定スクリプト (数値入力版) 試させて頂きました!!
すごいですね。すばらしいです。
ところで、このスクリプトで指定した緯度経度等を保持したまま保存することはできますか?
というのも、インストールのいらいないsketchup viewerと作成したファイルを友人に送付して、日影を確認してもらいたいので。
いかがでしょうか?
保存したファイルでもう一度このスクリプトを動かしてみれば、数値が保存されているのが確認できると思います。
sketchup viewerについてはよくわかりません。
ばんばn活用させていただきたいと思います。
すばらしいプラグインですね。
GSU8にはジオロケート機能がありますが、真北はグリーン軸固定のため、モデルの座標系を回転しなければならないのが嫌だな、と思い調べてみると、PRO版には真北を回転させる機能があるとのこと。
使わせて頂きまして大変助かっております。どうもありがとうございます。