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

このスクリプトはトラックポイント間を線で結んで表示するものです。
トラックポイントは非常に量が多いため、処理に時間がかかるのと、場合によってはメモリ不足などでアプリケーションが終了してしまう可能性もあります。
また以下のスクリプトでは描画したら90度回転しないと上が北になりません、ちょっと手抜き...(以下のスクリプトでは右側が北です)
var SCALEX = 2000; // 横方向の倍率
var SCALEY = 2000; // 縦方向の倍率
var BASEX = 36.1; // 原点とする基準X座標
var BASEY = 138; // 原点とする基準Y座標
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)
{
pData = new Array();
cnt = 0;
oldX = 0;
oldY = 0;
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);
x = (lat - BASEX) * SCALEX ;
y = (lon - BASEY) * SCALEY ;
pData[0] = [oldX, -oldY];
pData[1] = [x, -y];
oldX = x;
oldY = y;
pObj = docObj.pathItems.add();
pObj.setEntirePath(pData);
pObj.filled = false; // 塗りあり
pObj.stroked = true; // 線あり
pObj.strokeWidth = 1; // 線幅は1ポイント
pObj.fillColor = setColor(0,0,0); // 塗りの色を指定(黒色)
pObj.strokeColor = setColor(255,0,0); // 線の色を指定(赤色)
}
}
fileObj.close();
}else{
alert("XMLファイルが開けませんでした");
}
function setColor(r,g,b)
{
var tmpColor = new RGBColor();
tmpColor.red = r;
tmpColor.green = g;
tmpColor.blue = b;
return tmpColor;
}

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