クリエイター手抜きプロジェクト[169]Illustrator CS2/CS3編 GPSの座標データを読み出しプロットする
── 古籏一浩 ──

投稿:  著者:


前回は、GPSから出力されたXMLデータ内の座標値を、そのまま表示するスクリプトでした。せっかく座標値を読み出せるのだから、ドキュメント上にプロットしたくなるでしょう。

とりあえず、座標点を読み出して基準点を設け、適当に拡大してからプロットすればできあがりです。



基準点や倍率は最初の4行である

var SCALEX = 2000; // 横方向の倍率
var SCALEY = 2000; // 縦方向の倍率
var BASEX = 36.1; // 原点とする基準X座標
var BASEY = 138; // 原点とする基準Y座標

で調整できます。どの程度の範囲をプロットするのかによって倍率は変えなければいけません。どうも、座標点がうまく計算されていないようだと思ったら以下のスクリプトの

//alert(x+","+y);

の先頭の//を削除して実行してください。プロットすべき座標点が表示されます。この値を見て倍率を変更してください。プロットする範囲が少なければ倍率を高めにし、広ければ倍率を低めにしてください。

また、プロットする図形は円になっていますが、この円のサイズを変更にするには

pObj = docObj.pathItems.ellipse(x,y,2,2);

の2,2の値を変更してください。値が大きいと円のサイズが大きくなります。


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)
{
while(!fileObj.eof)
{
text = fileObj.readln();
if(text.indexOf("< wpt ") > -1) // XML Tag Search
{
xmlData = text.split(" "); // 空白で分割
lat = xmlData[3].substring(5,xmlData[3].length-1);
lon = xmlData[4].substring(5,xmlData[4].length-2);
x = (lat - BASEX) * SCALEX ;
y = (lon - BASEY) * SCALEY ;
//alert(x+","+y);
pObj = docObj.pathItems.ellipse(x,y,2,2);
pObj.filled = true; // 塗りあり
pObj.stroked = true; // 線あり
pObj.strokeWidth = 0; // とりあえず線幅は0ポイントに
pObj.fillColor = setColor(255,0,0); // 塗りの色を指定(赤色)
pObj.strokeColor = setColor(0,0,0); // 線の色を指定(黒色)
}
}
textObj = docObj.textFrames.add();
textObj.contents = result;
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;
}


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

ブルーレイディスクドライブを買ってみました。I/O DATAのドライブではMac OS Xだとドライバなしで手軽にBD-RE(書き換え型)が使えるとのこと。実際に書き込んでみたら、非常に低速な上に50GBメディアだとドライブが熱のせいか途中で停止(35GBくらいで停止)。1時間に2GB程度しか書けないのでバックアップするのにも1日がかりという計算になります。結局、BD-REはあきらめてBD-Rでバックアップしました。人間の頭の中とかもバックアップできれば便利そうだけど、現時点では遺伝子をバックアップするところまででしょうか。

photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
star簡単にできます
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps APIv2活用リファレンス Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用 Web API実践リファレンスブック



photo
prototype.jsパーフェクトリファレンス―Ajax実践プログラミング
古籏 一浩
アスキー・メディアワークス 2008-04
おすすめ平均 star
star網羅的じゃない
star本の出来は最高です。

prototype.jsとscript.aculo.usによるリッチWebアプリケーション開発 ActionScript 3.0 逆引きクイックリファレンス Adobe Flash CS3対応 詳説 正規表現 第3版 1ランク上の技を身につけるFlashの強化書 (MYCOMムック +DESIGNING Professional Bi) (MYCOMムック +DESIGNING Professional Bi) ActionScript 3.0 プログラミング入門 - for Adobe Flash CS3



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

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript 改訂第5版 オールカラー  HTML ポケットリファレンス (POCKET REFERENCE) スタイルシート ポケットリファレンス (Pocket reference)

by G-Tools , 2008/06/02