« 携帯での実験 | トップページ | びっくり »

2008年8月 4日 (月)

あしあとtoKML を作ってみた

携帯のGPSログデータをKMLに変換するのに、前回は『あしあと君』と言うフリーソフトを
使わせて頂きましたが、色々変更したい事も出てくるだろうと言うことで、えぃやとEXCEL
マクロで作ってみました。

マクロ(VBA)の知識はあってもKMLの知識もGPSデータの知識も無いので、最初は適当に作
ってアップロードしてみても「KMLが壊れてる」だったり、表示出来てもとんでもないとこ
ろに線が引かれたり(なんか地球の裏側に線が引かれてたよ)しましたが、なんとか完成(
正味8時間くらいかかった)。

ひっかかった中で一番の問題だったのはKMLって、UTF-8にしないと駄目で、尚且つBOM無し
(UTF-8N)なんですね。
最初はそのままShiftJISで出力して上手く行かず、UTF-8だと気が付いてUTF-8にしても
上手く行かず(しかし出来たKMLをGoogleMapのインポート機能を使うとちゃんと表示され
たりするので余計分からなくて)バイナリダンプしてみたらBOMが付いていた、と言う落
ち。VBAからUTF-8出力ってのも今回初めてやったし、勉強になりました。

いまのところ、設定シートで設定出来るのは
・線の色(EXCELのセルに色を塗り、その色をそのまま採用)
・線の透明度(0~100%までを10%刻みでリストから選択するようにした)
・線の太さ(1~20pxまでを1px刻みでリストから選択するようにした)
・線の名前
・開始地点のマークの名前
・開始地点のマーク選択
・終了地点のマークの名前
・終了地点のマーク選択
・任意のポイントのコメント入力(開始と終了は除く)
・任意のポイントのマーク選択(各ポイント毎には選べない)
が変更出来るようにしてあります。
透明度は0~255で細かく指定出来るけど、透明度48%と透明度52%って普通の人には見分け
つかないだろうから10%刻み。
開始地点には、コメントとして開始時の年月日時分秒を表示し、終了地点ではコメントと
して、終了時の年月日時分秒のほか、総時間、平均時速、総距離を出していますが、この
変も変更出来た方がいいのかなぁ、とか思いつつも、とりあえず自分用なので放置。
PlaceMarkについては、本当は画像で選択出来ると良いのだろうけど、面倒なので、マーク
画像のファイル名(^^;。分かりにくいかも。

また、生データをそのままKMLにするのでは芸が無いので、読み込んだデータの各Pointの
時刻をGPS秒から普通の年月日時分秒に変換、各Pointの経度・緯度から次のPointの経度・
緯度までの距離と平均時速を算出、これを表形式で表示し、全工程の移動距離、全工程の
時間、全工程の平均時速、も表示させています。

EXCELはEXCEL97以外(2000,XP,2003,2007)は動作することを確認しました(97は予想通り、
動かなかった)。

で、出力して見たのが次の奴。


大きな地図で見る

マークも全部(と言っても三箇所ですが)変わってますし、コメント(「止まってる?」って奴)
もちゃんと表示出来てますよね(苦笑)。

せっかく作ったので置いておきます。
欲しい方はご自由に。

「あしあとtokml_ver0.11.zip」をダウンロード

更新部分があるので、以下のページへどうぞ

「あしあとtokml_ver0.121.zip」のページへ

でも、お約束として、
・著作権は放棄しません。
・マクロにパスワードがかけてありますので、勝手に解析しないで下さい。
 そんなに人様に見せられる程、注意してコーディングしていないので恥ずかしい(^^;。
 どうしても、と言うのであれば、コメントかメールでも下さい。
・このソフト(マクロ)を使う事により何か不利益を被る事があっても当方は一切責任を負いません。
 自己責任にて使用して下さい。
 一応、マクロウィルスとかはチェックしていますが、これすら自分でチェックお願いします。
・ご要望や不具合のご報告はコメントでお願いします。
 但し、必ず対応すると言うことはお約束出来ません。
・使い方については、特に難しいところは無いとは思いますが、分からなかったらコメントして下さい。
・コメントを頂いてもすぐにお返事出来るかどうか分かりません。
 申し訳ございませんが気長にお待ち下さい。
てなところで。

|

« 携帯での実験 | トップページ | びっくり »

コメント

あしあとtoKML 使ってみました。
してほしいことが一発でいくので、感激しました。
ところが、ある場所でうまく地図に表示されないのでどこかにバグがあるかと思っていたのですが、どうも元データのあしあとデータにバグがあるようで。

緯度経度の小数点以下最初のゼロ以外が出現するまでゼロは出力しないようです。

例えば、はき出すデータが
+++GPSログ+++
908834732,111.200508,11.86826
だとしたら、正確には、
+++GPSログ+++
908834732,111.200508,11.086826
がKMLに吐き出してほしい情報となるようです。
小数点以下が6桁に満たない場合は、6桁になるようにゼロで桁を埋めなければいけないようです。

auにも伝えたのですが、
>恐れ入りますが、あしあと保存の際に、緯度経度小数点以下の数値につ
>いては一部データが破損する場合がございます。
とした上で、
>なお、データを修正するサイトを準備しておりますので、ご案内させて
>いただきます。
>【「あしあとデータ修正」サイト】
>http://airsmartg.sec.co.jp/ashiato
と案内されてしまいました。

ということで、現在「他のアプリケーションとの連携がうまくいかない」とアプリ改修の説得を続けています。

そこで、このエクセルで補正されるプログラムを入れ込んでもらえませんか?
そもそもアプリが悪いといえばそうですが、そのように改良してもらえたら幸いです。


投稿: おおはし | 2008年10月24日 (金) 23時13分

おおはしさん

こんにちは、TETU@管理人です。
返信が遅れて申し訳ありません。

ご連絡頂いた件、知ってたんですが、W62SAのあしあとデータはその不具合が修正されているっぽいんですね。

W62SAのログ例:
+++GPSログ+++
901392385,136.893011,35.011990
901392398,136.893602,35.008959
901392406,136.894197,35.007092
901392418,136.895383,35.004431
901392426,136.897013,35.003058
901392438,136.899932,35.001320
901392446,136.901804,35.000172
901392458,136.903821,34.998391

まぁEXCEL側で対応することはそれほど難しくはないので、
「小数点以下が6桁に満たない場合は、頭に0を補完して6桁にする」
と言う処理を入れてみました。

10月27日の記事で上げてありますので、ご確認下さい。

投稿: TETU | 2008年10月27日 (月) 10時53分

便利に使わさせてもらっています。
あしあとtoKMLをGPX形式への変換などに対応させたいのでソースを解析してもいいでしょうか?

投稿: しん | 2009年2月24日 (火) 22時59分

しんさん

こんにちは、TETUです。

ソースは、解析なんて言う大それた事をして頂く程面倒な事はしていません。
見て、改造して頂く事は全く問題ありませんが(汚いソースだなぁ、とかそういう文句は却下です(苦笑))、現状、マクロパスワードが掛かっていますので、今日から限定3日間だけマクロパスワードを外したバージョンを以下のURLで公開します。
ttp://briefcase.yahoo.co.jp/bc/tetu2_y/lst?.dir=/b1f4&.src=bc&.view=
2月28日の夜に消します(URLの”ttp”は”http”に変更して下さいね(全角で書いてますが半角にして下さい))。
それまでにダウンロードして下さい。

因みにFunP_OutPutKMLと言う関数とそれが参照しているシートや定数を変更すればGPX化出来ると思います。
出来たら私にも下さい(^-^)

投稿: TETU | 2009年2月25日 (水) 11時35分

ありがとうございます。早速GPX出力用に変更してみました(その他もチョコチョコ自分用に合わせていじってます)。GPX形式とかEXCELのマクロとか初めてなので適当ですがw
変更したものをメールでお送りしようと思ったのですがメアドがわかりませんでした。どこかのアップローダーに1週間くらいの期限で上げた方が良いでしょうか?

投稿: しん | 2009年2月27日 (金) 21時00分

しんさん

こんばんは、TETUです。
いやぁ仕事速いですねぇ。

メアドですが「プロフィール」の方へ公開しました。

宜しくお願い致します。
一応しんさんがダウンロードされたようなので、1日早いですが、公開を完了させて頂きますね。

投稿: TETU | 2009年2月27日 (金) 22時34分

コメントを書く



(ウェブ上には掲載しません)




« 携帯での実験 | トップページ | びっくり »