Taiwan datums/cad2twd67

From OSGeo
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
#!/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