From 286dd94a39c2ffba32bbe9feac39c80f75efc19c Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 05 May 2008 10:30:27 +0800
Subject: [PATCH] update for EOFM-68

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java
index e208caf..06428e0 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java
@@ -267,7 +267,7 @@
         return new Coordinate(newX, newY, newZ);
     }
 
-    public static void toTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y)
+    public static Coordinate toTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y)
     {
         double x0, y0, x1, y1, m0, m1;
         double n, t, c, A;
@@ -291,9 +291,10 @@
                   + n * Math.tan(y0)
                     * (A * A / 2.0 + (5.0 - t + 9.0 * c + 4 * c * c) * Math.pow(A, 4.0) / 24.0
                        + (61.0 - 58.0 * t + t * t + 600.0 * c - 330.0 * ecc2) * Math.pow(A, 6.0) / 720.0));
+        return new Coordinate(newX, newY);
     }
 
-    public static void fromTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y)
+    public static Coordinate fromTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y)
     {
         double newX, newY;
         double x0, y0, x1, y1, phi, m, m0, mu, e1;
@@ -323,6 +324,7 @@
                   * (d * d / 2.0 - (5.0 + 3.0 * t1 + 10.0 * c1 - 4.0 * c1 * c1 - 9.0 * ecc2) * Math.pow(d, 4.0) / 24.0
                      + (61.0 + 90.0 * t1 + 298.0 * c1 + 45.0 * t1 * t1 - 252.0 * ecc2 - 3.0 * c1 * c1) * Math.pow(d, 6.0)
                        / 72.0)) * RAD_DEG;
+        return new Coordinate(newX, newY);
     }
 
     private static double mercator(double y, double a, double ecc)
@@ -487,4 +489,9 @@
      *   printf("Acuuracy (%.4f, X:%.4f, Y:%.4f)nn", sqrt((dx1-tx1)*(dx1-tx1)+(dy1-ty1)*(dy1-ty1)), (dx1-tx1), (dy1-ty1));
      * }
      */
+
+    public static Coordinate fromTM2ToTWD97(Coordinate pt)
+    {
+         return  fromTM2(TWD97_A,TWD97_ECC,TWD97_ECC2, 0, 121, TWD97_TM2, pt.x, pt.y);
+    }
 }

--
Gitblit v0.0.0-SNAPSHOT