GPSのトラックポイント(軌跡データ)を読み出し表示する (Illustrator CS2/CS3編)

GPS機によっては移動した位置を一定時間ごと記録しています(トラックポイント)。この記録データを抽出してIllustrator上に座標値として表示させるスクリプトです。座標点をプロットするスクリプトについては次回説明します。 これまでにも使用したGARMIN社のGPSmap 60CSxではXMLデータを出力すると以下のようにタグが生成されます。

<trkpt lat="35.9994058" lon="137.8527693">
<ele>888.3955078</ele>
<time>2007-12-24T05:32:43Z</time>

ここからタグ内の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ファイルが開けませんでした");
}

[サンプルをダウンロード]