最終更新: 2017/06/07(Wed)23:56

「つくる」をお題目に、トイラジやらVoltyやら、いろいろゴソゴソやってます -kyu-

Home

CyoiPointConvバージョンアップ(Googleマップ連携)

CyoiPointConvというのは、PNDで遊ぶ(9)登録地点ファイルをPCで編集するで紹介している自作スクリプトです。ちょいNAVI AK-CND333用につくった、登録地点ファイルをPCで編集できるCSVと相互変換するものです。
ちょいNAVIの測地系は日本測地系(TOKYO97)で、Googleマップに使われている世界測地系(WGS84)とは異なります。CyoiPointConv自体には測地系の変換機能はありませんので、手計算などで世界測地系を日本測地系に変換後CSVにしてから、CyoiPointConvを通す必要がありました。

10月末に行ったツーリングで、信号で集団から分断されてしまった後、宿の場所がわからずにしばし迷走してしまったわけですが、事前にGoogleマップで調べた座標を日本測地系に変換するのを忘れてそのままちょいNAVIに落としてしまったのが原因でした。約400m程度ズレてしまうのだそうです。目標地点が草津温泉街の真っ只中で込み入った場所だったため、完全にロストしてしまいました。その節は失礼しました>N村さん

Googleマップの経度緯度情報を書き出して利用する方法としては、PNDで遊ぶ(11)Googleマップのルート案内で作成したデータをちょいNAVIで利用するで書いたとおり、GMapToGPXを使ってGPX形式にするのが一般的なようですが、ブックマークレットを使ったりとこれはこれで結構面倒でして、正直なところ存在すら忘れていました。

さて、前からあったのかもしれませんが、Googleマップに「マイプレイス」という機能があるのについ最近気づきました。マイプレイス > マイマップと下っていくと、作成したマイマップをKML形式でローカルに保存するインターフェィスがあります。

★マイマップをKML形式でダウンロードする
KMLというのはGoogleEarthで利用できるXMLファイルです。特別なブックマークレット不要で、単純にダウンロードできます。これを使わぬ手はありません。

ダウンロードしたKMLファイルをCyoiPointConvに流し込めるように整形するためのKML→CSV変換ツールを作り始めたのですが、どうせなら測地系も変換したくなり、別スクリプトにすると手順が面倒だと感じたので、CyoiPointConvに機能を統合することにしました。GoogleマップからダウンロードしたKMLファイルをドロップすると、測地系を変換したCSVを生成するというものです。

ドロップするファイル生成されるファイル
(1)RegisteredInfo.binCSV
(2)CSVRegisteredInfo.bin
(3)KMLCSV

こんな使い方を想定しています。
まずGoogleマップでマイマップを作成しPCにKMLファイルとしてダウンロードします。KMLをCSVに変換(3)。できたCSVをExcelなどで編集して上書き保存。このCSVからRegisteredInfo.binを生成(1)。ちょいNAVIに転送して出先で利用。出先で地点登録した場合は、帰宅後にRegisteredInfo.binからCSVを生成(2)。

で、つくりました。


CyoiPointConv.zip[179clicks]
v0.4 (2011.11.26)

ダウンロードしたzipファイルを解凍してでてきたCyoiPointConv.vbsを適当なフォルダにおきます。そのままデスクトップに置いてもかまいませんし、別フォルダにおいた場合はデスクトップにショートカットをつくっておくと便利でしょう。
CyoiPointConv.vbs(またはショートカット)に、RegisteredInfo.binまたはUSERREGDATA.DAT、*.csv、*.kmlをドラッグ&ドロップしてください。変換元と同じフォルダに変換後のファイルが作成されます。生成されるのは上表のとおり。同名のファイルは無条件上書きします。

備忘録として今回追加した部分のコーディング内容についてちょっと書いときます。
KMLファイルの文字コードはUTF-8形式です。VBScriptはShift-JIS以外の文字コードを扱えませんので、ADODB.Streamをつかって文字コード変換をかまします。UTF-8で取り込んだ文字列をそのまま切った貼ったすると文字化けしてしまうので、まずはCopyToでShift-JISの別ストリームにコピーして文字コード変換し、再度Shift-JISのストリームを読み直して文字列操作します。
またXMLの扱いを簡単にするために、MSXML2.DOMDocumentを使用しました。ベタな文字列検索/置換の必要がないのでヒジョーに楽です。

繰り返しになりますが、エラー処理や判定は厳密にやってませんので、あやしいエラーの発生や無限ループの可能性はあります。
くれぐれもファイルをバックアップしてからご利用ください。
ダウンロードの際、コメント欄に一言入れていただけるとうれしいです。不具合報告もコメント欄からどうぞ。

コメント

2件のコメントがあります

同メーカー製PND-101でも使え、
とても満足しています。
本当に、ありがとうございました。

  • 大分県民の一人

>大分県民の一人さん

お役にたてたようでなによりです。
PND-101は昭文社(マップル)の地図なんですね。画面も大きくてうらやましいです。

  • kyu

コメントを投稿

( *は必須項目です )

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%64%31%33%30%36%62%63%31%39%39%37%32%39%30%32%39%37%61%36%36%61%63%30%61%32%34%32%30%61%31%62%62%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%32%31%38%64%64%33%37%38%34%34%35%30%61%37%63%37%32%64%37%34%61%30%31%34%66%63%64%31%64%36%32%35%22%3e

サイト内検索

↑ページ先頭へ

1064383 [Mode]
Copyright © kyu-weblog All Rights Reserved. Powered by Nucleus CMS v3.71 管理