前回はPhotoshopのパスをKMLに変換しましたが、座標値をCSV形式(カンマ区切り)として利用したい場合もあります。CSV形式だとエクセルなどで処理することもできますし、何よりシンプルで扱いやすいというメリットがあります。また、Web上で使う場合、KMLでなくJSON/JSONP形式にしておいた方が便利な場合もあります。
以下のスクリプトは、アクティブになっているレイヤー(パスのあるレイヤー)の、パスポイントの座標値をファイルに書き出します。なお、このスクリプトは前回同様、地図をトレースした際に利用するものになっています。このため、キャンバス上のピクセル単位での座標値を取得したい場合には、別のスクリプトを使う必要があります(可能なら、以下のスクリプトを手直しして使ってください)。
上側の緯度、左側の経度に0を指定し、下側の緯度にキャンバスの高さ、右側の経度にキャンバスの横幅を指定して変換する方法もありますが、計算の都合上、パスポイント座標値に誤差が発生することがあります。
以下のスクリプトは、アクティブになっているレイヤー(パスのあるレイヤー)の、パスポイントの座標値をファイルに書き出します。なお、このスクリプトは前回同様、地図をトレースした際に利用するものになっています。このため、キャンバス上のピクセル単位での座標値を取得したい場合には、別のスクリプトを使う必要があります(可能なら、以下のスクリプトを手直しして使ってください)。
上側の緯度、左側の経度に0を指定し、下側の緯度にキャンバスの高さ、右側の経度にキャンバスの横幅を指定して変換する方法もありますが、計算の都合上、パスポイント座標値に誤差が発生することがあります。
LF = String.fromCharCode(10);
docW = activeDocument.width.value;
docH = activeDocument.height.value;
function mapPathCSV(){
var pObj = activeDocument.pathItems[0];
var result = "";
var pp = pObj.subPathItems[0].pathPoints;
for(var i=0; i< pp.length; i++){
var x = pp[i].anchor[0];
var y = pp[i].anchor[1];
x = gLeft + (x / docW) * gDX;
y = gTop - (y / docH) * gDY;
result += x+","+y+ LF;
}
return result;
}
(function(){
var layObj = activeDocument.activeLayer;
if(layObj.kind != LayerKind.SOLIDFILL){
alert("パスで塗りつぶされたレイヤーを選択してから実行してください");
return;
}
gTop = prompt("上側の緯度を入れて下さい",0);
if (!gTop) return;
gBottom = prompt("下側の緯度を入れて下さい",0);
if (!gBottom) return;
gLeft = prompt("左側の経度を入れて下さい",0);
if (!gLeft) return;
gRight = prompt("右側の経度を入れて下さい",0);
if (!gRight) return;
gTop = parseFloat(gTop);
gBottom= parseFloat(gBottom);
gLeft= parseFloat(gLeft);
gRight= parseFloat(gRight);
gDX = gRight-gLeft;
gDY = gTop-gBottom;
var text = mapPathCSV();
var fileObj = File.saveDialog("保存ファイル名を入れて下さい");
if (fileObj){
var flag = fileObj.open("w");
if (flag == true){
fileObj.write(text);
fileObj.close();
alert("変換が終了しCSV形式でデータを保存しました");
}else{
alert("ファイルが作成できませんでした");
}
}
})();
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
成田空港で飛行機が墜落炎上しましたが、関係ないだろうと思ってました。が、その飛行機に今月発売する商品の原材料が積まれてました(@_@)。びっくり。商品は当然発売延期で、2〜3ヶ月後になってしまうとのこと。
今年も3月に塩尻市の道路景観を撮影してきました。新しい店も少し増えましたが、マンションなどは空き家ばかりで、不動産屋の看板が目立ちます。
・(道路)景観アーカイブ
< http://www.openspc2.org/travel/
>
- Google Maps API逆引きクイックリファレンス―WEB2.0対応
- 古籏 一浩
- 毎日コミュニケーションズ 2006-09
- おすすめ平均
- 簡単にできます
- ようやく出ました。使えるGoogleMapsリファレンス。
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2009/03/30