Taiwan datums/cad2twd67
Jump to navigation
Jump to search
#!/usr/bin/perl
# cad2twd67 -- # 地籍座標轉換成TWD67
# Taiwan "Cadastral" to TWD67 coordinate transformation
# Copyright : http://www.fsf.org/copyleft/gpl.html
# Created On : Fri May 13 23:28:16 2005
# 地籍座標即日據時代沿用至今地籍圖之常見座標。
# 單位為「間」,等於 20/11 米,即六台尺。
# 原點為台中公園的 89 號三角點。
# 只是抄李弘洲﹑朱杏修﹑曾德福 在
# 1999年第十八屆測量學術及應用研討會論文集之公式。
use strict;
use warnings;
# 「六十九年成果」之二度分帶坐標:
my $XCtm69 = 227361.634 + 0.0;
my $YCtm69 = 2632574.582 + 0.0;
# 大約本程式是針對全省。
# 故若只針對單一鄉鎮不遠處,
# 亦已有一已知點,
# 可以試細調以上的 0.0,
# 否則誤差可達幾十公尺。
# 轉換參數
my $XCcad = 5750;
my $YCcad = -21300;
my $A = 1.8182516286522;
my $B = -0.004167109289753;
# 每行輸入之地籍坐標(單位為「間」)
my $Xcad;
my $Ycad;
while (<>) {
die "Enter Xcad, Ycad" if ( ( $Xcad, $Ycad, undef ) = split ) != 3;
# $Xtmtrn, $Ytmtrn 是由地籍坐標($Xcad, $Ycad)經四參數轉換套合至
#「六十九年成果」而成之近似二度分帶坐標。
my $Xtmtrn = $A * ( $Xcad - $XCcad ) - $B * ( $Ycad - $YCcad ) + $XCtm69;
my $Ytmtrn = $B * ( $Xcad - $XCcad ) + $A * ( $Ycad - $YCcad ) + $YCtm69;
printf "%.3f\t %.3f\n", $Xtmtrn, $Ytmtrn;
}
# 以上 "69" 大概類似 TWD67 我猜。
# 轉回去? 要深讀他們的文章...
# Usage example:
# $ more cadfile
# -5000 1250
# -14100 -23500
# $ perl cad2twd67 < cadfile
# 207909.397 2673620.953
# 191260.172 2628657.146