にやにや製作:GoogleMapとGPSを自転車で使う

お気楽・ごくらく ( ・∀・)ニヤニヤ
     
製作 かるかる

日本語でGoogle Earth COM API ・その2 旧APIは健在!!

2006年12月30日 07時25分47秒 | Hacks
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 APIGoogle Earth COM API
検索してみると以外に結果が違うのね、知らないページが出てきて
今は両方検索してたりする。
また APIが入っているとGoogleMapsのAPIも引っかかってくるので、-maps -hatenaと入れてる。

GoogleEarthの標高データはどこまで正しいか試してみる

2006年12月29日 00時05分01秒 | Hacks
GoogleEarth COM APIを使って、ポイント(プレイスマーク)上の標高を取得することが出来るようになったので、
実際にその取得した標高が正しいかを確かめてみた。ソースとかは次回

標高がしっかりとわかっている場所で無いと確かめられない。
個人的に近場のポイントがないかなと考えてみると、
小学校の社会科の授業で日本一標高の低い駅として「JR弥富駅」を習った覚えがある...確か。
Wikipediaで調べてみると、掲載されている弥富駅(Googleマップの位置リンク)の看板に海抜-0.93mと描かれていた。
センチメートルの単位で標高が出てきたのでこの値が取得できるかGoogleEarth上のデータで調べてみることにする。
最低点だけではあれなので、日本一高い所にある普通鉄道の駅 小海線 野辺山駅 海抜1346m も追加

参考: 日本一の一覧 wikipedia
資料1:弥富駅と野辺山駅 station.kmz
資料2:日本の湖で標高を調査 lake.kmz
使用ソフト:GMM.exe Ver1.2.0.1

調査地点:
1.標高の低い駅:JR弥富駅
2.標高の高い駅:野辺山駅

調査方法:
Yahoo!地図情報Googleマップでそれぞれ地名検索してGMM.exeに取り込んで調査

簡単な手順:
1.ブラウザでYahoo!地図情報とGoogleマップを開き、調査地名を検索
2.結果のリンクをGMM.exeに読み込ませて場所確定
3.GMM.exeからGoogleEarthをCOM API経由で制御してポイントの位置に移動し、その標高を取得

2006/12/30追加情報:
Google Earth COM API Documentationに載っているようにGoogle Earth COM APIを使うためには
DOSコマンドプロンプト上で以下のコマンドを実行する必要がありました。

登録するコマンド(登録は一度でOK):
C:>"C:Program FilesGoogleGoogle Earthgoogleearth.exe" /regserver

削除するコマンド(登録後、もうこの機能を使わない場合に実行):
C:>"C:Program FilesGoogleGoogle Earthgoogleearth.exe" /unregserver
2006/12/30追加情報ここまで

結果:


0m以下の標高は取れなかった。
弥富や長島の堤防に囲まれた輪中地帯をGoogleEarthで探っても0mとしか出てこない、
どうやら海抜0m以下のデータはGoogleEarthには入っていない or 取得できないらしい。
他に世界一標高が低い土地として知られている「死海」の辺りもマイナス表示は出ることなく、最低0mとしかでてこない。
逆に高いほうの野辺山駅1347mとして値がとれている
以上から、海抜0メートル地帯は別として、正しい標高が取得できることがわかった。

考えられる利用法:
GPSで緯度経度などの位置情報の誤差は±15m位で収まりますが、
垂直方向の誤差はこの数値に収まらないことが多々あり、そのため機種によっては気圧高度計が含まれていたりします。
このような気圧高度計による補正が無い機種のデータの誤差を補完する機構を
ソフトに組み込むことが出来れば、より信頼できるデータとなるでしょう。

どうでもいいこと:
ところで、この情報はいったいどこから入手したものだろうか?
日本だと国土地理院が販売している10cm単位の「数値地図XXmメッシュ地図(標高)」があるため
入手は容易だろうけど、この国以外でそんな精巧なものあるん?
まぁオランダとかはありそうだけど、Googleは衛星写真だけから割り出しているのかな?

ここではGoogleEarth COM APIのネタとして、GoogleEarthから標高データを取り出してみましたが、
世の中にはそんなことせずにもっと楽に高度を取得する方法があります。
ALPSLAB routeが出力するルートデータ(GPX)にはそのまま標高のデータが含まれているので
道を走るだけなら、こちらのほうが実用的でしょう、グラフも出るしね。
また、国土地理院製の公開データ数値地図も試験公開ながら利用できます。

Yahoo!地図情報の仕様が変わった

2006年12月27日 20時41分47秒 | Hacks
いつのまにか、Yahoo!地図情報が出力する位置情報の書式が一部
度.分.秒形式(35.39.26.180,139.43.56.868)から
度形式(35.657272,139.732463)へ変更された模様。気づいたのは27日

http://map.yahoo.co.jp/pl?lat=35%2F10%2F56.063&lon=136%2F54%2F7.1&のような表記が
http://map.yahoo.co.jp/pl?lat=35.11083333&lon=136.7288052へ
画像のURLは以前のまま
http://img.map.yahoo.co.jp/ymap/mk_map?lat=35%2F6%2F39.0&lon=136%2F43%2F43.699&
(関連個所を抜粋)
測地系は以前と同じ、日本測地系のまま。

現在GMM.exeをそれに対応すべく修正中

-----------
2006/12/27 20:41 対応しました。→Ver1.2.0.1
2006/12/28 23:53 別の理由で再アップしました。 →Ver1.2.0.1まま

Googleマップ/GoogleEarth編集ツール GMM Ver 1.2.0.0公開

2006年12月25日 19時45分41秒 | Google Hacks
最新版のダウンロード
GMM.exeの最新版のダウンロード用WEBページ

バージョン:
GMM.exe 1.1.0.12 → GMM.exe Ver1.2.0.0

大きな追加点:
1.GoogleEarthが扱うファイル形式であるKMZの出力に対応
2.GPSトラック解析による勾配表現画像のプロフィールマップがカラーになった。

修正:
大きなバグは発見されませんでした。チョコチョコとは直してあります。

補足:
GoogleEarthに編集中のポイントを置く機能は、今のところ「日本語」がとおりません。
???のような表示がされてしまいます。
以上を含めてGoogleEarthをCOM APIを使って弄る機能は
試験的要素があります。

-------------------
2006年12月31日追加:
コメントに書き込まれている巨匠さんによる解決方法で日本語表示の
プレイスマークを打つことが出来るようになりました。
詳しくはGoogle Earth COM API - Write Placemark in Japaneseを見てください。
早速組み込んで試したところ、こちらでも成功していますので
次の版で使えるように用意します。

GoogleMaps/GoogleEarth GPS走行記録・山とか徘徊 2006年版

2006年12月24日 00時10分35秒 | GPS自転車走行・徘徊記録まとめ
GoogleマップGoogleEarthでまとめた自転車走行記録一覧
2006年 GPS走行記録・山とか徘徊とかもあり

フリーソフト GoogleMaps GoogleEarth 編集ツール GMM.exe 最新版のダウンロード
GMM.exeの最新版のダウンロード用WEBページ


2006/4/15 薄墨桜OFF
岐阜・本巣(旧根尾村)の薄墨桜を見に行くOFF「岐阜駅~根尾村」初のGoogleMaps使用例

2006年4月29日 「養老山脈」
「木曽三川公園~上石津~二之瀬経由で戻ってくるコース」

名古屋の自転車屋ってどう?
「2ch・自転車板に上がっていたスレッドのまとめ」

2006/5/3 津島・天王川藤祭
「通勤自転車で行く花見・猿回しが来ていた」

2006年5月5日 「GW知多半島OFF」
「大田川~半田~師崎~常滑で時計回り一周・天気がいい」

2006/6/24 木曽三川公園~墨俣一夜城 

「木曽三川公園に車を止めて墨俣一夜城までピストン・日差しが強かった」

2006年7月9,10,11日栂池自然園・八方尾根

「隔年で行っている栂池・お気楽極楽森林ハイク」

2006年8月19日 名古屋港湾岸ぽた
「早朝湾岸ポタ・あおなみ線・稲永駅~金城埠頭・フェリー埠頭を回る」この辺からGoogleEarthへ重心が移る

2006年8月26日 へろへろ琵琶湖
「国道21号線を使った家~琵琶湖・米原ピストン、蒸気機関車を偶然見た」
 
2006年9月9日 行ってきました香嵐渓

「名古屋・栄~東山線沿い~猿投グリーンロードを使って香嵐渓へ」

GoogleEarth 新機能タイムラインを試すω_(゜∀゜ )
「2006年9月16日 岐阜・可児市 花フェスタ記念公園を徘徊・なにせ年間券持ってるので行きたい放題」

2006年9月23日 津谷川~養老の滝~お千代稲荷

「津谷川の彼岸花とおちょぼ稲荷の串を求めて木曽三川公園から行ってみる」

2006年10月14日(゜ε゜)キニシナイ!!・鈴鹿スカイライン行き
「御在所岳の脇を国道477・鈴鹿スカイラインを使って武平峠まで、駐車場ではたこ焼きを食う」

2006年10月21日 二之瀬・鞍掛峠
「紅葉を期待して行く・木曽三川公園~二之瀬~鞍掛峠ピストン」

2006年10月28日 御池岳・鈴北岳登山
「三岐鉄道の登山大会へ出てみる・やっぱり単独行がお似合い?」

2006年12月2日 祖父江のイチョウと木曽・長良川背割り堤
「尾張サイクリングロードを使って大治~木曽川朝日取水口+木曽長良川背割堤」

2006年12月10日 名古屋・鶴舞公園~足助・香嵐渓
「ついに本番秋(冬?)OFF・鶴舞公園~豊田~香嵐渓ピストン」

2006年12月16日 二之瀬と中里ダムへ
「やっぱり二之瀬・初めての中里ダムへルート探索」

----------------------------------------------
ALPSLAB routeに投稿したルート
2006/11/10 09:54:36 木曽三川公園~二之瀬ヒルクライム
2006/11/13 17:00:00妄想・浜名湖一周自転車道路


まとめてみると11月を除いて、4月からは結構ログ採りをしてる。
GPSを持って行かず走りに行ってる数のほうが多いので、ほとんど毎週名古屋を離れて徘徊してたみたい。
しかし東海3県を越えたのは1回で琵琶湖へピストンした時のみ。
来年は鞍掛峠や石榑峠、武平峠を越えて滋賀県へ進出しよう
琵琶湖経由で福井の敦賀や静岡へ桜えびを食いに行く企画もええかも。
  _  ∩
( ゜∀゜)彡 おさそい歓迎!! 歓迎!!
 ⊂彡


日本語でGoogleEarth COM API

2006年12月23日 00時02分43秒 | Hacks
最近正式公開されたGoogleEarth COM APIというAPIを使って
GoogleEarthを外部APから弄って遊ぶのがおもしろい。

このAPIを使ったアプリケーションを作ると直接GoogleEarthを弄らないで動かしたり、
情報を取得したり出来たりする。

日本語で公開されていた実際に使っている情報としては、
AGtoKMLのBugsなうさぎの憂鬱

DLLの具体的な作成方法や緯度経度取得サンプルについてかかれている
グーグルアースを楽しむBlog@N-O

DLLの構築方法や.NET上の各種言語での使い方を例示している巨匠.NET
の三ヶ所しか見当たらない。

具体例として、GoogleEarth外のソフトから座標を送ってやり、GoogleEarthに視点をその場所まで飛ばしたり
マウスが押された場所の緯度経度などが取得できる。←これは便利

またAPIの1つで、GetCamera() : IApplicationGE なんかだと
PlaceMarkの向きやカメラ(見る位置)の仰角、方角が取得できるので
連続した視点情報を送ってやることで、グルグルと回りながら見せたり、
それこそ登山道からの眺めを連続的に表現することも可能。
タイムスケール機能で、GPSのトラックデータを表現するより
視点を順次送って、移動の雰囲気を味わえるようにならんかなと思っている。
建物の形も3D化しているわけだから、詳細なデータがある都市部だとつかえるかも。

今年のツールではGoogleEarthの情報が提供されたようだが、
来年は視点情報も加わる?、もし無いようなら私がやろかしらん。

他にも OpenKmlFile ([in] BSTR fileName,[in] BOOL suppressMessages)を使えば、
作成途中のプレイスマーク集をGoogleEarthに送ってプレビューとかも可能だが、
送ったデータをクリアする方法がわからないので使ってない。

と現在まだまだ手探り状態、
一応こんどのGMM.exeも座標取得とかで使ってるので試してみてね。

新しいプロフィールマップを作ってみた

2006年12月22日 00時50分11秒 | Google Hacks
プロフィールマップ:


次期バージョンのGMM.exe が出力する「プロフィールマップ」のサンプル
こんな感じでカラー表示のPNGファイルが出力されます。
自転車で使うことを前提にしたカラー勾配です。
色は、ロボ氏のサイバーサイクリストのページで使われている註と色合いが最高なので、そのまま利用しました。
ちなみに実装は3時間、やってみたらサクッて感じで終了。

KsGMapについて:
新しいVer1.2系列ではKsGMapに対応したXMLを出力させるつもりでしたが、
GoogleMapsEditorの方で出力できるので取りやめました。
現在のバージョンでも
GMM.exe → GoogleMapsEditor → KsGMap とデータを交換すれば可能です。

GoogleEarth COM API:
最近正式公開されたこのAPIを利用できるようにしました。
まだ様子見なので、GoogleEarth上のマウスポインタの位置を取得することだけの実装です。

編集機能など:
今までもポイント情報の順番を変えることが出来ましたが、
全てマウスで行うためかなり面倒でした。
キーボードを使えるようにして、格段に操作性が良くなりました。

KMZ対応:
KMLと画像をまとめたGoogleEarthのファイル形式である
KMZ形式のファイル出力に対応しました。
画像込みでの配布が可能になるので、画像用にサーバーを用意する必要がなくなります。

※KMZはKMLファイルと画像等が、ZIP形式で1つのファイルにまとめて圧縮されたものです。

クリスマス前にダウンロードできるようにする予定。

新型充電池・エネループをつかってみた。

2006年12月20日 21時40分23秒 | Hacks
香嵐渓へ行った10日と中里ダムへ行った16日と、この一週間でえらい気温差が出てきました。
2回ともGPSの電池に三洋のニッケル水素充電池 eneloopを使いました。
電池は気温が下がると極端に性能差が現れるので冬に試してみるのが一番、
実際にハンドルにつけて寒風を受けながらの耐久テスト。

使っているガーミンのGPS e-trek(無印)は、単三アルカリ池2本で22時間(公称)持つことになっていますが、
新品のアルカリ電池でも一回5時間使って、3回+家でのデータ取りでほぼカラになってしまいます。(バッテリーセーブモード)
GPSに蓄えられるトラックデータも6時間で上限の1500ポイントを越えてしまうので、
1回の電池交換で3回分しか使えません。(実測べーす)


で使ってみた結果:
「何回使えるか」
3回(14時間)+コンピュータとのシリアル通信をこなしました。
通常モードで3回使えたので立派です。
いままで、高いアルカリ電池の節約のためバッテリーセーブモードで常用してましたが、
これからは常に通常モードの綺麗なログが採取できそうです。

またこの3回の使用期間は1ヶ月に渡っています。
自己放電が少ないという宣伝文句通りなんの問題なしに乗り切っています。
今までの充電池だと1ヶ月ほっておくと、カラです。2回目はありえなかったです。

という訳で、買ってきたばかりの新品のNiMH充電池が1ヶ月も電力を温存したままで
3回のログ採りに使えました。

※NiMH充電池は、2、3回充放電を繰り返すと本来の性能を発揮するようになる。
-----------------------
以下どうでもいい事。

今までもアルカリ電池の代わりに、NiMH充電池を試してみましたが
使い古しの充電池のためフル充電で1回~2回(5時間+3時間)程度で「BATTERY LOW」と出てしまう状態です。

10月の鈴鹿・御池山行きではアルカリ電池の買い置きが無かったため、
急遽自転車用ランプに使っている単三のNiMH充電池(1500mAh)をフル充電で持っていきましたが、
途中で電源が何度も落ちてしまい十分なログが取れませんでした。
そんなこともあり、今までと違ってかなり使える電池と話題のeneloopを購入することにしました。

手に入れて最初にやったことは、電圧の計測です。
怪しい情報で eneloopは、充電直後の電圧が高く(1.7Vとか)
GPSを壊すとか変な情報がありましたので、充電直後の電圧を測ってみました。
買ってきたパッケージを開けた直後は、1.37v、充電後は1.42vでした。
1.7vなんて出てません、まったくのデマで安心して使えます。
ちなみにこの状態でGPSに入れると8割の容量を指します。
この電池の容量は、min1900mAhですが、GPSが電池容量を測る仕組みは
容量が減るにしたがって電圧が下がっていく曲線を元に推定しているだけなので
実際の容量を測っているわけではありません。
この推測もアルカリ電池を元にしているため、あまり意味がありません。
機種によって使用電池の切り替え設定があるのはこのためですね。

他に気づいたこと:
今まで使ってきたアルカリ電池(松下)、東芝の充電池(1500mAh)と比べて胴回りが厚い(eneloop:1900mAh)。
そのためバッテリーケースに入れるのがなかなか難しい。

----------------------------------------------------------
参考:何度も「eneloop」と「HHR-3MPS」を取り上げているコラム
MYCOMジャーナル - 家電 - コラム - 男の家電

閉鎖間近の二之瀬と中里ダムへ行ってみる

2006年12月16日 20時38分46秒 | 自転車
この時期は、7時にならないと明るくならず出発も遅くなってしまう。
昨日の夜に、いまだ行ったことの無い「中里ダム」に行ってみようとGPSにウェイポイントを仕込んでおいたので用意はばっちり

GoogleEarth版 KML
「2006年12月16日 上石津~中里ダム~梅林公園~二之瀬~木曽三川公園」KMLダウンロード

コース:家~木曽三川公園~津谷川堤防~上石津~多良峡~中里ダム~川原~二之瀬~木曽三川公園~家
すでに鞍掛峠、いしぐれ峠、鈴鹿スカイライン武平峠と閉鎖されてしまった。
残るは一番標高の低い二之瀬だけ、これも来週には冬季閉鎖されるハズ


家をでて2時間、津谷川の堤防
山が近いせいか風をあまり感じない。



津谷川堤防道路が途中で工事通行止めになっていたので、下に降りる羽目に。



10時ぴったし養老駅に出てきた。


順調に多良峡を通過中、途中の水場。
しかしこの後またしても、工事通行止めにあう。


初めての中里ダム、吹きっさらしで風が強い。
春に来ると向かいにある梅林公園の梅が香るのかな。


12:26 二之瀬を上りきって庭田公園。
下りは寒さで((((;゜Д゜)))ガクガクブルブル
服装:長タイツ、山Tシャツ+ウインドブレーカー、レスプロマスク
この時期のレスプロマスクは効く、まぁ水は飲めんし半分も空気が入ってこないけどね。

あとはいつもの道で家まで、今日は工事が多くて調子が狂いまくり。
それよりも運動不足のせいか足が回らず、家でもなんか疲労感。
残りは雪が降る前に米原方面かな。

プロフィールマップ

2006年12月16日
Dist 129.9km
ave 21.7km/h
time 5:59:16
max 48.1km/h
hr-avg 144(Max178)
cal 3869Kcal


日曜日の香嵐渓行きの写真をメンバーからもらいました。
近いうちに写真を追加するので見てね。