最近では、カーナビだけでなくGPS機能がついた携帯や、GPS専用機などがあります。GPS機器によっては、記録した座標や軌跡(トラックポイント)をXMLデータなどに出力できるものがあります。例えば、GARMIN社のGPSmap 60CSxでは専用ソフトで軌跡をXMLデータとして出力することができます。
今回は、この記録データを抽出してIllustrator上に座標値として表示させるスクリプトです。座標点をプロットするスクリプトについては次回説明します。これまでにも使用したGARMIN社のGPSmap 60CSxでは、XMLデータを出力すると以下のようにタグが生成されます。
今回は、この記録データを抽出してIllustrator上に座標値として表示させるスクリプトです。座標点をプロットするスクリプトについては次回説明します。これまでにも使用したGARMIN社のGPSmap 60CSxでは、XMLデータを出力すると以下のようにタグが生成されます。
< trkpt lat="35.9994058" lon="137.8527693" >
< ele >888.3955078< /ele >
< time >2007-12-24T05:32:43Z< /time >
ここから< trkpt >タグ内のlatとlonの値を抽出して、最後にまとめて座標値を表示すればできあがりです。ただし、このトラックポイントは非常に量が多いため、メモリが少ない場合などには正常に動作しない事があります。また、非常に時間がかかる点にも注意してください。
if (documents.length < 1) // ドキュメントがなかった場合は新規に作成
{
documents.add(DocumentColorSpace.CMYK,595.2756,841.8898);
}
docObj = activeDocument;
result = "";
CR = String.fromCharCode(13);
filename = File.openDialog("GPSで出力したXMLファイルを指定してください");
fileObj = new File(filename);
flag = fileObj.open("r");
if (flag == true)
{
while(!fileObj.eof)
{
text = fileObj.readln();
if(text.indexOf("< trkpt ") > -1) // XML < trkpt > Tag Search
{
xmlData = text.split(" "); // 空白で分割
lat = xmlData[7].substring(5,xmlData[7].length-1);
lon = xmlData[8].substring(5,xmlData[8].length-2);
result += lat+","+lon+CR;
}
}
textObj = docObj.textFrames.add();
textObj.contents = result;
fileObj.close();
}else{
alert("XMLファイルが開けませんでした");
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
ちなみに、CS3からはXMLデータオブジェクトを扱うことができるようになっています。これに関しては、また別の機会に。なんてやっているうちにCS4なんですよね……。
勉強がてらMac版のExcelのページを作成中です。
・マイクロソフト エクセル 使い方辞典(Excel 2008 for Mac)
< http://www.openspc2.org/reibun/Excel2008/
>
もうテラステーション満杯なので、しばらくは更新しないかも。
・ハイビジョン映像素材
< http://www.openspc2.org/HDTV/
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2008/10/06