Google Earth COM APIについて巨匠.NETで問題解決に至るアドバイスをもらったのでまとめ
緯度経度についてグーグルアースを楽しむBlog@N-Oの 続・簡単アプリの
VBサンプルをC#へ移し変えただけなので簡単に出来た。
次に標高を取得しようと
double ICameraInfoGE::FocusPointAltitude [set,get]を使ってみたが返ってくるのは0mばかり。
巨匠さんのアドバイスで、古いAPIである KHInterface の
GetPointOnTerrainFromScreenCoords を使うと標高が取れるとの情報をもらって
ようやく高度情報をGoogle Earthから取得することができた。
最初コードはFocusPointAltitudeから値を採ろうとしていたので、こんなかんじ。
IApplicationGE ge2 = new ApplicationGE();
CameraInfoGE ci2 = new CameraInfoGE();
int terrain;
string alt = "0";
terrain = 0;
ci2 = ge2.GetCamera(terrain);
alt = ci2.FocusPointAltitude.ToString();
MessageBox.Show(alt, "alt");
古いAPIの方を使って、GetPointOnTerrainFromScreenCoordsが返す値から取得することがわかり
以下のように変更
KHInterface ge2 = new KHInterface();
string alt = "0";
double[] TerrainPoint;
TerrainPoint = ge2.GetPointOnTerrainFromScreenCoords(0, 0);
MessageBox.Show(TerrainPoint[2].ToString(), "alt");
結果、緯度経度についてはApplicationGE()配下から取れる値を使い
標高に関しては、KHInterface()を利用していることになる。
動作検証はGMM.exe (Ver1.2.0.1~)に組み込んで行った。
具体的に何をやったかは、先日の「GoogleEarthの標高データはどこまで正しいか試してみる」を見てね。
-----------------
ところで、GoogleEarth COM APIとGoogle Earth COM APIを
検索してみると以外に結果が違うのね、知らないページが出てきて
今は両方検索してたりする。
また APIが入っているとGoogleMapsのAPIも引っかかってくるので、-maps -hatenaと入れてる。
緯度経度についてグーグルアースを楽しむBlog@N-Oの 続・簡単アプリの
VBサンプルをC#へ移し変えただけなので簡単に出来た。
次に標高を取得しようと
double ICameraInfoGE::FocusPointAltitude [set,get]を使ってみたが返ってくるのは0mばかり。
巨匠さんのアドバイスで、古いAPIである KHInterface の
GetPointOnTerrainFromScreenCoords を使うと標高が取れるとの情報をもらって
ようやく高度情報をGoogle Earthから取得することができた。
最初コードはFocusPointAltitudeから値を採ろうとしていたので、こんなかんじ。
IApplicationGE ge2 = new ApplicationGE();
CameraInfoGE ci2 = new CameraInfoGE();
int terrain;
string alt = "0";
terrain = 0;
ci2 = ge2.GetCamera(terrain);
alt = ci2.FocusPointAltitude.ToString();
MessageBox.Show(alt, "alt");
古いAPIの方を使って、GetPointOnTerrainFromScreenCoordsが返す値から取得することがわかり
以下のように変更
KHInterface ge2 = new KHInterface();
string alt = "0";
double[] TerrainPoint;
TerrainPoint = ge2.GetPointOnTerrainFromScreenCoords(0, 0);
MessageBox.Show(TerrainPoint[2].ToString(), "alt");
結果、緯度経度についてはApplicationGE()配下から取れる値を使い
標高に関しては、KHInterface()を利用していることになる。
動作検証はGMM.exe (Ver1.2.0.1~)に組み込んで行った。
具体的に何をやったかは、先日の「GoogleEarthの標高データはどこまで正しいか試してみる」を見てね。
-----------------
ところで、GoogleEarth COM APIとGoogle Earth COM APIを
検索してみると以外に結果が違うのね、知らないページが出てきて
今は両方検索してたりする。
また APIが入っているとGoogleMapsのAPIも引っかかってくるので、-maps -hatenaと入れてる。