From 7840e31dd97db0efe77bdf859ac2fe9767d3dd1a Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Mon, 14 Apr 2008 15:35:17 +0800 Subject: [PATCH] update for EOFM-42 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java | 34 +++++++++++++++++++--------------- 1 files changed, 19 insertions(+), 15 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 aae577e..e208caf 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 @@ -1,5 +1,7 @@ package com.ximple.eofms.util; +import com.vividsolutions.jts.geom.Coordinate; + /** * TWDDatumConverter * User: Ulysses @@ -49,7 +51,7 @@ /* * datum convert function */ - void toTWD97(double x, double y, double z) + public static Coordinate toTWD97(Coordinate pt) { double newX, newY, newZ; double r, pole, sin_lat, cos_lat; @@ -57,9 +59,9 @@ double x1, y1, z1, x2, y2, z2; double q, q2, t, t1, s, s1, sum, sin_b, cos_b, sin_p, cos_p; - lon = x * DEG_RAD; - lat = y * DEG_RAD; - height = z * DEG_RAD; + lon = pt.x * DEG_RAD; + lat = pt.y * DEG_RAD; + height = pt.z * DEG_RAD; if ((lat < -HALF_PI) && (lat > -1.001 * HALF_PI)) { @@ -69,7 +71,7 @@ lat = HALF_PI; } else if ((lat < -HALF_PI) || (lat > HALF_PI)) { - return; + return null; } if (lon > PI) @@ -117,7 +119,7 @@ newY = lat * RAD_DEG; newZ = -TWD97_B; - return; + return new Coordinate(newX, newY, newZ); } } } @@ -154,9 +156,10 @@ newX = lon * RAD_DEG; newY = lat * RAD_DEG; newZ = height; + return new Coordinate(newX, newY, newZ); } - void toTWD67(double x, double y, double z) + public static Coordinate toTWD67(Coordinate pt) { double newX, newY, newZ; double r, pole, sin_lat, cos_lat; @@ -164,9 +167,9 @@ double x1, y1, z1, x2, y2, z2; double q, q2, t, t1, s, s1, sum, sin_b, cos_b, sin_p, cos_p; - lon = x * DEG_RAD; - lat = y * DEG_RAD; - height = z * DEG_RAD; + lon = pt.x * DEG_RAD; + lat = pt.y * DEG_RAD; + height = pt.z * DEG_RAD; if ((lat < -HALF_PI) && (lat > -1.001 * HALF_PI)) { @@ -176,7 +179,7 @@ lat = HALF_PI; } else if ((lat < -HALF_PI) || (lat > HALF_PI)) { - return; + return null; } if (lon > PI) @@ -224,7 +227,7 @@ newY = lat * RAD_DEG; newZ = -TWD67_B; - return; + return new Coordinate(newX, newY, newZ); } } } @@ -261,9 +264,10 @@ newX = lon * RAD_DEG; newY = lat * RAD_DEG; newZ = height; + return new Coordinate(newX, newY, newZ); } - void toTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y) + public static void 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; @@ -289,7 +293,7 @@ + (61.0 - 58.0 * t + t * t + 600.0 * c - 330.0 * ecc2) * Math.pow(A, 6.0) / 720.0)); } - void fromTM2(double a, double ecc, double ecc2, double lat, double lon, double scale, double x, double y) + public static void 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; @@ -321,7 +325,7 @@ / 72.0)) * RAD_DEG; } - double mercator(double y, double a, double ecc) + private static double mercator(double y, double a, double ecc) { if (y == 0.0) { -- Gitblit v0.0.0-SNAPSHOT