p4m.xl(4点以上のマッピングの作成)
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
xl p4m.xl / [p4m-file]
引数
[p4m-file] point-mapとmeta情報だけのマッピングファイル
オプション
-
reverse= none/src/dest デフォルトは none
ver.B.b16.05以降のサポート
環境
エージェント xl , エージェント netmapper [UNDEF REF (netmapper)]
説明
4点以上の対応点をもったマッピングでは、1次変換で座標を対応させることができません。そのため、全体を複数の三角形の領域 ( TIN)に分割し、おのおののTIN内部で異なる一次変換を適用する補完方式を行います。また、座標系の無限遠点でも変換出来るように、近似的に無限遠転用の一次変換を指定する必要があります。これらのパラメータを手で指定し、マッピングファイルを作ることも可能ではありますが、これを対応点を与えると自動的に生成するスクリプトがこのp4m.xlです。
ver.B.b16.05以降のLANDSCAPEでは、reverseオプションが新たに加わりました。マッピング元とマッピング先の軸の方向が異なる場合、reverseオプションが必要です。コンピュータ座標系 ( x軸右方向、y軸下向き)を基準にして、数学座標系 ( x軸右方向y軸上向き)の座標系をreverseオプションで指定します。例えば、マッピングもとが数学座標系であれば、reverse=srcと指定します。マッピング先が数学座標系であればreverse=destと指定します。もし、両方とも数学座標系の場合はreverse=noneで問題ありません。
まず、拡張子p4mをもったファイルを作ります。基本的には、拡張子map以外であればかまいません。p4mの構造はmapファイルの構造と同じです。point-mapとmeta情報のみを記述したものです。いわば、3 点までのmapファイルの4番目以降のpoint-mapをそのまま付け加えたものと考えてよいでしょう。従って、すでに3点までマッピングしたマッピングファイルがあり、それに4点目を追加しようと考えているときには、そのまま4点目を追加し、ファイルの拡張子を.p4mに書き換えれば、p4mファイルは完成です。以下の例は1系(九州)のためのp4mファイルの中身です。 (01.p4m)
<?xml version="1.0" encoding="EUC-JP"?>
<map>
<meta>
<file type="xl"/>
<src>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo/coord/01.crd
</src>
<dest>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</dest>
<dp>
181
</dp>
</meta>
<point-map>
b1
<list>
6577.435059m
30896.992188m
</list>
<list>
146482.000000m
1294111.625000m
</list>
</point-map>
<point-map>
b2
<list>
-16864.001953m
34593.703125m
</list>
<list>
149568.734375m
1315266.750000m
</list>
</point-map>
<point-map>
b3
<list>
-20587.638672m
81065.656250m
</list>
<list>
189254.359375m
1318867.375000m
</list>
</point-map>
<point-map>
b4
<list>
3998.532959m
12131.631836m
</list>
<list>
130398.726563m
1296403.500000m
</list>
</point-map>
<point-map>
b5
<list>
-38258.191406m
24350.640625m
</list>
<list>
140765.75000m
1334532.000000m
</list>
</point-map>
<point-map>
b6
<list>
-15451.980469m
56954.250000m
</list>
<list>
168696.531250m
1314098.375000m
</list>
</point-map>
</map>
この内容を01.p4mというファイルにセーブし、このスクリプトを適用します。
% xl p4m.xl - - / 01.p4m
すると拡張子のみが.mapに変化した、01.mapが生成されます。TINや無限遠点一次変換が指定された流通可能なマッピングファイルです。中身は以下のようになります。
<map>
<meta>
<file type="xl"/>
<src>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo/coord/01.crd
</src>
<dest>
xlp://isjhp2.nichibun.ac.jp:8080/kokudo20000/coord/00.crd
</dest>
<dp>
181
</dp>
</meta>
<horizontal-affen>
<List>
<List>
0.002363
0.854563
</List>
<List>
-0.901667
0.004435
</List>
</List>
<List>
120044.569714
1299925.616167
</List>
</horizontal-affen>
<point-map>
^"1"
<list>
-127929.444336
-125736.416992
</list>
<list>
12292.601562
1414717.750000
</list>
</point-map>
<point-map>
^"2"
<list>
-38258.191406m
24350.640625m
</list>
<list>
140765.750000m
1334532.000000m
</list>
</point-map>
<point-map>
^"3"
<list>
-127929.444336
218933.705078
</list>
<list>
306835.000000
1416246.250000
</list>
</point-map>
<triangle-map>
^"1"
^"2"
^"3"
</triangle-map>
<triangle-map>
^"2"
^"3"
^"1"
</triangle-map>
<triangle-map>
^"3"
^"2"
^"1"
</triangle-map>
<point-map>
^"4"
<list>
6577.435059m
30896.992188m
</list>
<list>
146482.000000m
1294111.625000m
</list>
</point-map>
<point-map>
^"5"
<list>
96248.687988
218933.705078
</list>
<list>
307364.656250
1214112.375000
</list>
</point-map>
<point-map>
^"6"
<list>
96248.687988
-125736.416992
</list>
<list>
12822.257812
1212583.750000
</list>
</point-map>
<triangle-map>
^"4"
^"5"
^"6"
</triangle-map>
<triangle-map>
^"6"
^"4"
^"5"
</triangle-map>
<triangle-map>
^"5"
^"4"
^"6"
</triangle-map>
<point-map>
^"7"
<list>
3998.532959m
12131.631836m
</list>
<list>
130398.726563m
1296403.500000m
</list>
</point-map>
<triangle-map>
^"1"
^"7"
^"6"
</triangle-map>
<triangle-map>
^"7"
^"6"
^"1"
</triangle-map>
<triangle-map>
^"6"
^"7"
^"1"
</triangle-map>
<point-map>
^"8"
<list>
-20587.638672m
81065.656250m
</list>
<list>
189254.359375m
1318867.375000m
</list>
</point-map>
<triangle-map>
^"5"
^"8"
^"3"
</triangle-map>
<triangle-map>
^"3"
^"8"
^"5"
</triangle-map>
<triangle-map>
^"8"
^"3"
^"5"
</triangle-map>
<triangle-map>
^"2"
^"8"
^"3"
</triangle-map>
<triangle-map>
^"3"
^"2"
^"8"
</triangle-map>
<triangle-map>
^"5"
^"8"
^"4"
</triangle-map>
<triangle-map>
^"8"
^"4"
^"5"
</triangle-map>
<triangle-map>
^"1"
^"2"
^"7"
</triangle-map>
<triangle-map>
^"2"
^"7"
^"1"
</triangle-map>
<triangle-map>
^"7"
^"4"
^"6"
</triangle-map>
<triangle-map>
^"6"
^"7"
^"4"
</triangle-map>
<point-map>
^"9"
<list>
-15451.980469m
56954.250000m
</list>
<list>
168696.531250m
1314098.375000m
</list>
</point-map>
<triangle-map>
^"9"
^"2"
^"8"
</triangle-map>
<triangle-map>
^"9"
^"8"
^"4"
</triangle-map>
<point-map>
^"10"
<list>
-16864.001953m
34593.703125m
</list>
<list>
149568.734375m
1315266.750000m
</list>
</point-map>
<triangle-map>
^"2"
^"7"
^"10"
</triangle-map>
<triangle-map>
^"9"
^"2"
^"10"
</triangle-map>
<triangle-map>
^"9"
^"10"
^"4"
</triangle-map>
<triangle-map>
^"7"
^"10"
^"4"
</triangle-map>
</map>
このファイルをサーバに認識させれば、マッピングは完成です。
% xl makefile.xl - -
▲ページトップへ戻る
戻り値
なし。
エラー
参考
バグ
▲ページトップへ戻る
|