プロフィール
 

morimori.ynct

Author:morimori.ynct
森下功啓製作所のブログです。
電子工作のことや日々思ったことを時々気まぐれに更新しています。
趣味で作っているサイトはこちら

 
最新記事
最新コメント
最新トラックバック
 
 
月別アーカイブ
カテゴリ
 
 

スポンサーサイト

 
--/--/--(--) Category : スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 
Comment  |  Trackback
 
 

Google Earhを.NETから呼び出して使いたい

 
2012/06/30(Sat) Category : GIS
 これまで、散布図を描画するフォームアプリの背景画像に国土地理院から拝借した地形図を載せ、その上にグラフを書くことでGPS等のパスを描画させていました。描画速度を高速化するための苦肉の策です。ただ、この手法だと必然的に描画したい領域が変わると動的に画像を作る必要が出てきます。WEBブラウザをユーザに見えないように作って、その上で国土地理院のプラグインで地図をカットしてペーストするのか…。面倒。

という訳でGoogle Earthが使えないのか調べてみました。


 Google Earthを.NETから使うには2通りあります。インストール済みのGoogle Earthを叩くCOMを使う方法と、ブラウザベースで動作するプラグインを使う方法です。コード例が豊富に出てくるのはCOMの方です。Google Earthコンテンツ&アプリ作成ガイドブックに出てくる例はこちらの方です。プラグインの方はブラウザに地図を埋め込む例は出てくるもののフォームアプリに統合する例はあまりありません。winforms-geplugin-control-libraryよりラップしているライブラリが公開されていましたので使ってみました。


 まずはCOM版です。下図は、リアルタイムでPictureBoxを使った画面操作をしたいのでPictureBoxの重ね書きができるか確認しているところです。COMに渡すハンドルをフォームではなくPictureBoxのものとすれば重ね書きは可能でした。なお、私の環境では終了時にプロセスが終了しませんでした。汗) 実行環境依存の問題かもしれません。おかげでフォームのクローズ時にKill()でプロセスを強制終了させる必要があります。でないと続けて起動ができません。

ちなみに実行環境はWin 7 x64,core i7, Google Earth はx86モードです。
WS000066.jpg

この方法は実質的にはGoogle Earthの起動画面を.NETのフォーム側へ出力しているのだと思います。なお、ウィンドウサイズを一定程度以下にしてもGoogle Earth側が小さくなってくれませんでした。



 で次がブラウザベースのライブラリを使用した場合です。このライブラリはGoogleがjava用に用意しているプラグインを叩くラッパーです。特徴はコード行数がえらく少なくて済むことでしょうか。しかも、PictureBoxの重ね書きができました。おまけに何個でもフォームを起動できます。配布されているサンプルプロジェクトのソースコードは、javaを叩くためか動的オブジェクト指定子のdynamicが使われているなど結構高度な書き方がなされています。勉強になるなぁ。
WS000067.jpg

こちらの場合、ウィンドウサイズにGoogle Earthの画面が追随してくれました。ただし、描画範囲を指定する方法がまだ分かりません。教えて偉い人!

なお、ライブラリ配布サイトから得られるサンプルのbinフォルダ内にあるdllファイルをコピって自前のプロジェクトフォルダへコピーして参照設定が必要でした。また、FC.GEPluginCtrls.GEWebBrowserクラスオブジェクトをフォームに張り付ける必要があるのですが(コードで書いてもいいんだけどさ)、これがツールバーにはデフォルトだと見当たりません。てっとり早く済ませるために、サンプルプロジェクトからコピペすることで対処しました。



*情報が古くなると途端に使い物にならなくなるのでご注意ください。
関連記事
スポンサーサイト
 
コメントアイコン Comment0  |  Trackback0
 
 

Trackback

 

Trackback URL :
この記事にトラックバックする(FC2ブログユーザー)

 
 

Comment

 

    
 
Home | Top ▲
 
検索フォーム
 
 
RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード
 
QR
 
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。