クリエイター手抜きプロジェクト[210]Illustrator CS2/CS3/CS4編 GPSの登録地点の標高データをプロットする
── 古籏一浩 ──

投稿:  著者:


GPS機によっては、登録した地点およびトラックポイント(軌跡)の標高を記録するものがあります。ここでは、GARMIN社のGPSmap60CSxで記録された標高データを抜き出し、線としてIllustrator上にプロットします。標高差を示す場合によく使われるようなラインになります。

ただし、登録地点が重複しているかどうかなどはチェックしていません。このため、登録開始地点から終了地点までを、左から右にラインを結ぶだけのスクリプトです。



var SCALEY = 1; // 縦方向の倍率
var BASEY = 690; // 原点とする基準Y座標標高
x = 0;
oldX = oldY = 0;
stepX = 5; // 記録点のプロット時の移動量
pData = [];
if (documents.length < 1) // ドキュメントがなかった場合は新規に作成
{
documents.add(DocumentColorSpace.CMYK,595.2756,841.8898);
}
docObj = activeDocument;
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(" -1) // XML Tag Search
{
text2 = fileObj.readln();
s = text2.indexOf(">");
e = text2.lastIndexOf("<");
ele = eval(text2.substring(s+1,e));
y = ele-BASEY; // プロットする座標
y = y * SCALEY;
pData[0] = [oldX, oldY];
pData[1] = [x, y];
oldX = x;
oldY = y;
x = x + stepX;
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;
}

上記スクリプトは、登録した地点だけをプロットしますが、トラックポイント(軌跡)の標高データをプロットしたい場合もあるかと思います。その場合は、上記スクリプト中の

if(text.indexOf(" -1) // XML Tag Search



if(text.indexOf(" -1) // XML Tag Search

に変更してください。ただし、トラックポイントのデータは多いため

stepX = 5; // 記録点のプロット時の移動量

の5の値を小さくしてプロット間隔を狭くしておくのがよいでしょう。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>

定額給付金より高い国民年金保険料。国民年金より安いネットブック。EOS 5D Mark II修理から戻ったけど、別のところが壊れてました。修理に出すと時間がもったいないので、このまま使うしかないなあ。
iPhone OS 3.0+Safari+SQLiteで、自分の位置を逐次記録するものを作成。以前はアプリケーションを作らないとできなかったものが、Safari(JavaScript)で簡単にできてしまいます。0.5秒〜1秒ごとに記録しますが、それでも20時間分くらいは記録可能なようです。もっとも、それより先にバッテリーがなくなるでしょう。

今回のテキストのネタにある標高データは、iPhone 3Gでは取得できません。標高データも取れると、どのビルの何階まで行ったのかまでバレてしまいますが……。

美ヶ原高原などEOS 5D Mark IIで撮影した30Fの映像は凄くきれいですが、青空がどうしてもブロックになってしまいます。もう少しビットレートを高くしてくれればよかったのに、と思いますが。でも、非常にきれいで一緒に持って行ったHDVカメラとは比較にならないほどです。

・ハイビジョン映像素材(フリー)
< http://www.openspc2.org/HDTV/
>

photo
組版時間を半減する! InDesign自動処理実例集
(株)シータス
技術評論社 2008-11-25
おすすめ平均 star
starプログラミング経験のない方も気軽に挑戦してほしいです

1ランク上の技を身につけるInDesignの強化書 (MYCOMムック +DESIGNING Professional Bible) InDesignレイアウト手帖 Adobe InDesign「文字組み」徹底攻略ガイド InCopyとInDesignによるワークフロー革命 CS4 & CS3 対応 for Macintosh & Windows これからはじめる InDesignの本 〈InDesignI CS3対応〉 (自分で選べるパソコン到達点)



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScriptを使ったプロジェクトのお供に是非
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) 改訂第6版 HTML&スタイルシート ポケットリファレンス (POCKET REFERENCE) よくわかるゼロからはじめるJavaScript (よくわかるトレーニングテキスト) JavaScriptプログラミング入門 第2版

by G-Tools , 2009/06/29