GoogleMapで「e旅歩き旅」全行程図を表示

過去のページに GoogleMap の Encoded Polyline を作成したくて JavaScript に取り組んだが、しばらくして挫折した。
どうやら JavaScript にはファイルをコピーする機能はないらしい。
ファイルをコピーしたり別のファイルに書き込んだりができるとWebサイトで悪用される恐れがあるために、JavaScript はそうした機能を制限しているのだということが、Webサイトを検索して勉強している内に判った。
VBScript は何でもできてしまう代わりに、Microsoft は Internet Explolrer のセキュリティ対策に手を焼いているとも書いてあった。 VBScript がハッカーによって有名になったことも肯ける。

 

そこで、今度は VBScript で実行しようと、ページの基本になる雛形のページをコピーし、GPSデータのGPXファイルを読み込んでデータを取得するところまで来て、また先へ進めなくなった。
今度は Encoded Polyline に欠かせないビット演算をする演算子が VBScript にはないことが判った。
Webサイトを検索しても、VBScript でビット演算を試みているサイトは1件見つかっただけで、かなり面倒な方法だ。JavaScript のようにシフト演算子を使って簡単にビット演算ができるようには作られてはいないらしいので、自分で関数を作らなければならないようだ。
コードは公開してあったので、それを見て自分用に書き直せば良いのだろけど、かなり敷居が高そうなので「あきひろ氏」の GPX Casual Editor にある Encoded Polyline 作成アルゴリズムをそっくりそのまま使わせてもらう方が安全且つ楽だから、また JavaScript に戻ってきた。

 

そこで、JavaScript でファイルコピーする方法をネットで検索していたら、Microsoft の ActiveX を組み込むことで実現できるということを書いたサイトが見つかった。
結局 VBScript で最初に書いていたことと同じことをやるようだけど、そのサイトの例に倣ってやってみると、ちゃんとコピーしているではないか! 少し先が見えてきたような気がする。
ところが VBScript で途中までできているコードを JavaScript に書き直すのは意外と骨が折れる。
VBS も JS も同じように見えていて、随分違うものだ。 特に2次元配列の宣言で嵌まった。
もう、どこにも間違いはない筈と思っていたが、どうしてもうまく行かない。何度確かめても間違いはなさそうである。
しかし、意外なところに落とし穴はあった。 JS では VBS のように簡単には2次元配列は宣言できないことに気付くのに相当の日数を要した。
解かっている人から見れば、初歩の初歩のその又初歩の段階でつまづいていたのだ。
仕方なく、GPXデータ(緯度・経度・標高・時刻)を4個ずつの塊として、1次元配列に縦列駐車の要領で取り込むことにして、一応データは取り込めるようになった。
その後、「あきひろ氏」の GPX Casual Editor を参考に見てみると、緯度・経度などそれぞれのデータをオブジェクトとして捉え、読み込むにも書き込むにも非常に解かりやすい手法で扱っていることが判り、早速その方法を真似てコードを書き直した。なるほどこの方が後々自分にも判り易い。

 

JPEG画像に埋め込まれている Exif データから撮影日時を読み込んで、GPSデータの時刻と比較して撮影場所を特定するには、以前 VBScript で作成したものを JavaScript に書き直せば良い訳だが、この際「あきひろ氏」の GPX Casual Editor にあるような正規の方法でやりたいと思って「あきひろ氏」のコードを見て勉強中である。

 

そんなこんなで、全部のページに Encoded Polyline を付けるには、まだまだ時間がかかりそうなので、「あきひろ氏」の GPX Casual Viewer を使って北海道宗谷岬から鳥取市まで102日間かけて歩いた「e旅歩き旅」のGPS軌跡を全部つなげて表示してみた
一日大体1200ポイント前後、歩いた日数は81日間だからざっと見積もっても10万ポイントはある。
こんなに多いポイントを一気に表示するのは無理ではないかと内心思っていたが、結果は上々。
今夜から「あきひろ氏」には足を向けては寝られない。(多分東京の方角?)
ただ、Internet Explorer 7 では動作が非常に重く、しばらくして 『このスクリプトは動作を遅くしています。中止しますか?』 のエラーメッセージが表示された。『いいえ』 をクリックすると一応全行程が表示されたが、殆ど実用的ではない遅さである。
しかし、Firefox Safari Opera では比較的早く表示した。
これならそれほどストレスを感じることなく見てもらえるかも知れない。
一日ずつの行程が判り易いように、線の太さを変えたり色を変えたりしてみたが、やっぱり一日ずつ色をに分けて表示するのが一番判り易いように思う。

データ
  • 2009.04.17(金)
ほかの参考サイト
アーカイブ

現在位置: ホームなんでも日記メニュー > このページ