Revision 45747
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/GeometryUtils.java | ||
---|---|---|
941 | 941 |
r = formatCoordinate_replace(r,"D","f", value); |
942 | 942 |
return r; |
943 | 943 |
} |
944 |
|
|
945 |
public static String formatAngle(String fmt, double angle) { |
|
946 |
|
|
947 |
double value = Math.abs(angle); |
|
948 |
|
|
949 |
int deg = (int)(value); |
|
950 |
double min = (value - deg) * 60; |
|
951 |
double secs = (min - (int) min)*60; |
|
952 |
|
|
953 |
String r = fmt; |
|
954 |
r = r.replace("%-",angle<0 ? "-" : ""); |
|
955 |
r = r.replace("%+",angle<0 ? "-" : "+"); |
|
956 |
|
|
957 |
r = formatCoordinate_replace(r,"s","f", secs); |
|
958 |
r = formatCoordinate_replace(r,"d","d", deg); |
|
959 |
r = formatCoordinate_replace(r,"m","d", (int)min); |
|
960 |
r = formatCoordinate_replace(r,"D","f", value); |
|
961 |
return r; |
|
962 |
} |
|
944 | 963 |
|
945 | 964 |
private static String formatCoordinate_replace(String fmt, String source_conversion, String target_conversion, Object value) { |
946 | 965 |
String s = fmt; |
... | ... | |
962 | 981 |
} |
963 | 982 |
return s; |
964 | 983 |
} |
984 |
|
|
985 |
/** |
|
986 |
* Returns the coefficient that expresses the direction in which the angle with vertex at center a and from point1 to point2 is beaten |
|
987 |
* coefDirection >= 0 then the direction is CCW |
|
988 |
* else the direction is CW |
|
989 |
* |
|
990 |
* @param center |
|
991 |
* @param point1 |
|
992 |
* @param point2 |
|
993 |
* @return |
|
994 |
*/ |
|
995 |
public static double getCoefDirection(Point center, Point point1, Point point2) { |
|
996 |
return Math.signum((point1.getX() - center.getX()) * (point2.getY() - center.getY()) - (point1.getY() - center.getY()) * (point2.getX() - center.getX())); |
|
997 |
} |
|
965 | 998 |
|
966 | 999 |
|
967 |
public static void main(String[] args) throws GeometryException { |
|
968 |
String s; |
|
969 |
// s = GeometryUtils.formatCoordinate("%-%d? %m' %s'' N", 39.89); |
|
1000 |
|
|
1001 |
// public static void main(String[] args) throws GeometryException { |
|
1002 |
// String s; |
|
1003 |
// s = GeometryUtils.formatCoordinate("%-%d\u00B0 %m\u2032 %s\u2033 N", 39.89); |
|
970 | 1004 |
// System.out.println(s); |
971 |
// s = GeometryUtils.formatCoordinate("%-%d? %m' %.0s'' N", 39.89);
|
|
1005 |
// s = GeometryUtils.formatCoordinate("%-%d\u00B0 %m\u2032 %.0s\u2033 N", 39.89);
|
|
972 | 1006 |
// System.out.println(s); |
973 |
// s = GeometryUtils.formatCoordinate("%+%d? %m' %.2s'' N (%4.4D)", 39.89);
|
|
1007 |
// s = GeometryUtils.formatCoordinate("%+%d\u00B0 %m\u2032 %.2s\u2033 N (%4.4D)", 39.89);
|
|
974 | 1008 |
// System.out.println(s); |
975 |
// s = GeometryUtils.formatCoordinate("%-%d? %m' N", -39.89);
|
|
1009 |
// s = GeometryUtils.formatCoordinate("%-%d\u00B0 %m\u2032 N", -39.89);
|
|
976 | 1010 |
// System.out.println(s); |
977 |
// s = GeometryUtils.formatCoordinate("%-%d? %m' N (%4.4D)", 39.89);
|
|
1011 |
// s = GeometryUtils.formatCoordinate("%-%d\u00B0 %m\u2032 N (%4.4D)", 39.89);
|
|
978 | 1012 |
// System.out.println(s); |
979 |
Geometry g = GeometryUtils.createFrom("00000007d50000000100000007d20000002341258d57c2b73acf4150bf008a45b87241258d5eb2faa5364150befedb0f995841258d6aeb851eb84150befbeeb851ec41258d723d70a3d74150bef9d51eb85241258d7e428f5c294150bef677ae147b41258d9d147ae1484150beeea47ae14841258dbc28f5c28f4150bee72ae147ae41258dc7ae147ae14150bee468f5c28f41258dcc6b851eb84150bee31999999a41258dd1666666664150bee18b851eb841258dd8d70a3d714150bedf1d70a3d741258ddea8f5c28f4150bedc951eb85241258de3eb851eb84150bed99ccccccd41258dea3d70a3d74150bed6351eb85241258defbd70a3d74150bed3728f5c2941258df39999999a4150bed1751eb85241258df6c7ae147b4150bed01c28f5c341258df86b851eb84150becf1f5c28f641258dfa1999999a4150becd4666666641258dfb6147ae144150becbc51eb85241258dfd1999999a4150bec9a000000041258dfec28f5c294150bec753d70a3d41258e001eb851ec4150bec2f666666641258e047ae147ae4150beb73147ae1441258e054ccccccd4150beb3bc28f5c341258e054ccccccd4150beb2d70a3d7141258e05947ae1484150beb2047ae14841258e053d70a3d74150beb17333333341258e03a8f5c28f4150beb0e47ae14841258de69999999a4150beaca3d70a3d41258db10f5c28f64150bea46d70a3d741258dabdc28f5c34150bea3928f5c2941258da8dc28f5c34150bea300a3d70a41258da623d70a3d4150bea26147ae1441258da34ccccccd4150bea19d70a3d7"); |
|
980 |
|
|
981 |
System.out.println(g); |
|
982 |
} |
|
1013 |
// Geometry g = GeometryUtils.createFrom("00000007d50000000100000007d20000002341258d57c2b73acf4150bf008a45b87241258d5eb2faa5364150befedb0f995841258d6aeb851eb84150befbeeb851ec41258d723d70a3d74150bef9d51eb85241258d7e428f5c294150bef677ae147b41258d9d147ae1484150beeea47ae14841258dbc28f5c28f4150bee72ae147ae41258dc7ae147ae14150bee468f5c28f41258dcc6b851eb84150bee31999999a41258dd1666666664150bee18b851eb841258dd8d70a3d714150bedf1d70a3d741258ddea8f5c28f4150bedc951eb85241258de3eb851eb84150bed99ccccccd41258dea3d70a3d74150bed6351eb85241258defbd70a3d74150bed3728f5c2941258df39999999a4150bed1751eb85241258df6c7ae147b4150bed01c28f5c341258df86b851eb84150becf1f5c28f641258dfa1999999a4150becd4666666641258dfb6147ae144150becbc51eb85241258dfd1999999a4150bec9a000000041258dfec28f5c294150bec753d70a3d41258e001eb851ec4150bec2f666666641258e047ae147ae4150beb73147ae1441258e054ccccccd4150beb3bc28f5c341258e054ccccccd4150beb2d70a3d7141258e05947ae1484150beb2047ae14841258e053d70a3d74150beb17333333341258e03a8f5c28f4150beb0e47ae14841258de69999999a4150beaca3d70a3d41258db10f5c28f64150bea46d70a3d741258dabdc28f5c34150bea3928f5c2941258da8dc28f5c34150bea300a3d70a41258da623d70a3d4150bea26147ae1441258da34ccccccd4150bea19d70a3d7");
|
|
1014 |
// |
|
1015 |
// System.out.println(g);
|
|
1016 |
// }
|
|
983 | 1017 |
|
984 | 1018 |
} |
Also available in: Unified diff