Java Doc for ObliqueMercator.java in  » GIS » GeoTools-2.4.1 » org » geotools » referencing » operation » projection » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » GIS » GeoTools 2.4.1 » org.geotools.referencing.operation.projection 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


org.geotools.referencing.operation.projection.MapProjection
   org.geotools.referencing.operation.projection.ObliqueMercator

All known Subclasses:   org.geotools.referencing.operation.projection.HotineObliqueMercator,
ObliqueMercator
public class ObliqueMercator extends MapProjection (Code)
Oblique Mercator Projection. A conformal, oblique, cylindrical projection with the cylinder touching the ellipsoid (or sphere) along a great circle path (the central line). The and projections can be thought of as special cases of the oblique mercator, where the central line is along the equator or a meridian, respectively. The Oblique Mercator projection has been used in Switzerland, Hungary, Madagascar, Malaysia, Borneo and the panhandle of Alaska.

The Oblique Mercator projection uses a (U,V) coordinate system, with the U axis along the central line. During the forward projection, coordinates from the ellipsoid are projected conformally to a sphere of constant total curvature, called the "aposphere", before being projected onto the plane. The projection coordinates are further convented to a (X,Y) coordinate system by rotating the calculated (u,v) coordinates to give output (x,y) coordinates. The rotation value is usually the same as the projection azimuth (the angle, east of north, of the central line), but some cases allow a separate rotation parameter.

There are two forms of the oblique mercator, differing in the origin of their grid coordinates. The (EPSG code 9812) has grid coordinates start at the intersection of the central line and the equator of the aposphere. The (EPSG code 9815) is the same, except the grid coordinates begin at the central point (where the latitude of center and central line intersect). ESRI separates these two case by appending "Natural_Origin" (for the "Hotine_Oblique_Mercator" ) and "Center" (for the "Oblique_Mercator" ) to the projection names.

Two different methods are used to specify the central line for the oblique mercator: 1) a central point and an azimuth, east of north, describing the central line and 2) two points on the central line. The EPSG does not use the two point method, while ESRI separates the two cases by putting "Azimuth" and "Two_Point" in their projection names. Both cases use the point where the "latitude_of_center" parameter crosses the central line as the projection's central point. The is not a projection parameter, and is instead calculated as the intersection between the central line and the equator of the aposphere.

For the azimuth method, the central latitude cannot be ±90.0 degrees and the central line cannot be at a maximum or minimum latitude at the central point. In the two point method, the latitude of the first and second points cannot be equal. Also, the latitude of the first point and central point cannot be ±90.0 degrees. Furthermore, the latitude of the first point cannot be 0.0 and the latitude of the second point cannot be -90.0 degrees. A change of 10-7 radians can allow calculation at these special cases. Snyder's restriction of the central latitude being 0.0 has been removed, since the equations appear to work correctly in this case.

Azimuth values of 0.0 and ±90.0 degrees are allowed (and used in Hungary and Switzerland), though these cases would usually use a Mercator or Transverse Mercator projection instead. Azimuth values > 90 degrees cause errors in the equations.

The oblique mercator is also called the "Rectified Skew Orthomorphic" (RSO). It appears is that the only difference from the oblique mercator is that the RSO allows the rotation from the (U,V) to (X,Y) coordinate system to be different from the azimuth. This separate parameter is called "rectified_grid_angle" (or "XY_Plane_Rotation" by ESRI) and is also included in the EPSG's parameters for the Oblique Mercator and Hotine Oblique Mercator. The rotation parameter is optional in all the non-two point projections and will be set to the azimuth if not specified.

Projection cases and aliases implemented by the ObliqueMercator are:

  • Oblique_Mercator (EPSG code 9815) - grid coordinates begin at the central point, has "rectified_grid_angle" parameter.
  • Hotine_Oblique_Mercator_Azimuth_Center (ESRI) - grid coordinates begin at the central point.
  • Rectified_Skew_Orthomorphic_Center (ESRI) - grid coordinates begin at the central point, has "rectified_grid_angle" parameter.
  • Hotine_Oblique_Mercator (EPSG code 9812) - grid coordinates begin at the interseciton of the central line and aposphere equator, has "rectified_grid_angle" parameter.
  • Hotine_Oblique_Mercator_Azimuth_Natural_Origin (ESRI) - grid coordinates begin at the interseciton of the central line and aposphere equator.
  • Rectified_Skew_Orthomorphic_Natural_Origin (ESRI) - grid coordinates begin at the interseciton of the central line and aposphere equator, has "rectified_grid_angle" parameter.
  • Hotine_Oblique_Mercator_Two_Point_Center (ESRI) - grid coordinates begin at the central point.
  • Hotine_Oblique_Mercator_Two_Point_Natural_Origin (ESRI) - grid coordinates begin at the interseciton of the central line and aposphere equator.
References:
  • libproj4 is available at libproj4 Miscellanea
    Relevent files are: PJ_omerc.c , pj_tsfn.c , pj_fwd.c , pj_inv.c and lib_proj.h
  • John P. Snyder (Map Projections - A Working Manual, U.S. Geological Survey Professional Paper 1395, 1987)
  • "Coordinate Conversions and Transformations including Formulas", EPSG Guidence Note Number 7 part 2, Version 24.
  • Gerald Evenden, 2004, Documentation of revised Oblique Mercator

See Also:    Oblique Mercator projection on MathWorld
See Also:    "hotine_oblique_mercator" on RemoteSensing.org
See Also:    "oblique_mercator" on RemoteSensing.org
since:
   2.1
version:
   $Id: ObliqueMercator.java 24581 2007-02-26 01:36:46Z desruisseaux $
author:
   Rueben Schulz

Inner Class :public static class Provider extends AbstractProvider
Inner Class :public static class Provider_TwoPoint extends Provider

Field Summary
final protected  doubleazimuth
     The azimuth of the central line passing throught the centre of the projection, in radians.
final protected  doublelatitudeOfCentre
     Latitude of the projection centre.
final protected  doublelongitudeOfCentre
     Longitude of the projection centre.
final protected  doublerectifiedGridAngle
     The rectified bearing of the central line, in radians.
final  booleantwoPoint
     true if using two points on the central line to specify the azimuth.

Constructor Summary
protected  ObliqueMercator(ParameterValueGroup parameters)
     Constructs a new map projection from the supplied parameters.
 ObliqueMercator(ParameterValueGroup parameters, Collection expected, boolean twoPoint, boolean hotine)
     Constructs a new map projection from the supplied parameters.
Parameters:
  parameters - The parameter values in standard units.
Parameters:
  expected - The expected parameter descriptors.
Parameters:
  twoPoint - true for the "two points" case, or false for the"azimuth" case.

Method Summary
public  booleanequals(Object object)
     Compares the specified object with this map projection for equality.
public  ParameterDescriptorGroupgetParameterDescriptors()
    
public  ParameterValueGroupgetParameterValues()
    
protected  doublegetToleranceForAssertions(double longitude, double latitude)
     Maximal error (in metres) tolerated for assertion, if enabled.
Parameters:
  longitude - The longitude in decimal degrees.
Parameters:
  latitude - The latitude in decimal degrees.
public  inthashCode()
     Returns a hash value for this projection.
protected  Point2DinverseTransformNormalized(double x, double y, Point2D ptDst)
    
protected  Point2DtransformNormalized(double x, double y, Point2D ptDst)
    

Field Detail
azimuth
final protected double azimuth(Code)
The azimuth of the central line passing throught the centre of the projection, in radians.



latitudeOfCentre
final protected double latitudeOfCentre(Code)
Latitude of the projection centre. This is similar to the ObliqueMercator.latitudeOfOrigin , but the latitude of origin is the Earth equator on aposphere for the oblique mercator.



longitudeOfCentre
final protected double longitudeOfCentre(Code)
Longitude of the projection centre. This is NOT equal to the ObliqueMercator.centralMeridian , which is the meridian where the central line intersects the Earth equator on aposphere.

This parameter applies to the "azimuth" case only. It is set to Double.NaN NaN for the "two points" case.




rectifiedGridAngle
final protected double rectifiedGridAngle(Code)
The rectified bearing of the central line, in radians. This is equals to the if the Provider.RECTIFIED_GRID_ANGLE "rectified_grid_angle" parameter value is not set.



twoPoint
final boolean twoPoint(Code)
true if using two points on the central line to specify the azimuth.




Constructor Detail
ObliqueMercator
protected ObliqueMercator(ParameterValueGroup parameters) throws ParameterNotFoundException(Code)
Constructs a new map projection from the supplied parameters.
Parameters:
  parameters - The parameter values in standard units.
throws:
  ParameterNotFoundException - if a mandatory parameter is missing.
since:
   2.4



ObliqueMercator
ObliqueMercator(ParameterValueGroup parameters, Collection expected, boolean twoPoint, boolean hotine) throws ParameterNotFoundException(Code)
Constructs a new map projection from the supplied parameters.
Parameters:
  parameters - The parameter values in standard units.
Parameters:
  expected - The expected parameter descriptors.
Parameters:
  twoPoint - true for the "two points" case, or false for the"azimuth" case. The former is used by ESRI but not EPSG.
Parameters:
  hotine - true only if invoked by the HotineObliqueMercatorconstructor.
throws:
  ParameterNotFoundException - if a mandatory parameter is missing.




Method Detail
equals
public boolean equals(Object object)(Code)
Compares the specified object with this map projection for equality.



getParameterDescriptors
public ParameterDescriptorGroup getParameterDescriptors()(Code)



getParameterValues
public ParameterValueGroup getParameterValues()(Code)



getToleranceForAssertions
protected double getToleranceForAssertions(double longitude, double latitude)(Code)
Maximal error (in metres) tolerated for assertion, if enabled.
Parameters:
  longitude - The longitude in decimal degrees.
Parameters:
  latitude - The latitude in decimal degrees. The tolerance level for assertions, in meters.



hashCode
public int hashCode()(Code)
Returns a hash value for this projection.



inverseTransformNormalized
protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)



transformNormalized
protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)



Fields inherited from org.geotools.referencing.operation.projection.MapProjection
protected double centralMeridian(Code)(Java Doc)
final protected double excentricity(Code)(Java Doc)
final protected double excentricitySquared(Code)(Java Doc)
final protected double falseEasting(Code)(Java Doc)
final protected double falseNorthing(Code)(Java Doc)
protected double globalScale(Code)(Java Doc)
final protected boolean isSpherical(Code)(Java Doc)
protected double latitudeOfOrigin(Code)(Java Doc)
protected double scaleFactor(Code)(Java Doc)
final protected double semiMajor(Code)(Java Doc)
final protected double semiMinor(Code)(Java Doc)

Methods inherited from org.geotools.referencing.operation.projection.MapProjection
static boolean checkInverseTransform(double longitude, double latitude, Point2D expected, double tolerance)(Code)(Java Doc)
static boolean checkInverseTransform(double longitude, double latitude, Point2D expected)(Code)(Java Doc)
static boolean checkTransform(double x, double y, Point2D expected, double tolerance)(Code)(Java Doc)
static boolean checkTransform(double x, double y, Point2D expected)(Code)(Java Doc)
final double cphi2(double ts) throws ProjectionException(Code)(Java Doc)
final double doubleValue(Collection expected, ParameterDescriptor param, ParameterValueGroup group) throws ParameterNotFoundException(Code)(Java Doc)
static void ensureLatitudeEquals(ParameterDescriptor name, double y, double expected) throws IllegalArgumentException(Code)(Java Doc)
static void ensureLatitudeInRange(ParameterDescriptor name, double y, boolean edge) throws IllegalArgumentException(Code)(Java Doc)
static void ensureLongitudeInRange(ParameterDescriptor name, double x, boolean edge) throws IllegalArgumentException(Code)(Java Doc)
final void ensureSpherical() throws IllegalArgumentException(Code)(Java Doc)
public boolean equals(Object object)(Code)(Java Doc)
static boolean equals(double value1, double value2)(Code)(Java Doc)
abstract public ParameterDescriptorGroup getParameterDescriptors()(Code)(Java Doc)
public ParameterValueGroup getParameterValues()(Code)(Java Doc)
final public int getSourceDimensions()(Code)(Java Doc)
final public int getTargetDimensions()(Code)(Java Doc)
protected double getToleranceForAssertions(double longitude, double latitude)(Code)(Java Doc)
public int hashCode()(Code)(Java Doc)
final public MathTransform inverse()(Code)(Java Doc)
abstract protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)(Java Doc)
boolean isExpectedParameter(Collection expected, ParameterDescriptor param)(Code)(Java Doc)
final double msfn(double s, double c)(Code)(Java Doc)
final void set(Collection expected, ParameterDescriptor param, ParameterValueGroup group, double value)(Code)(Java Doc)
final public Point2D transform(Point2D ptSrc, Point2D ptDst) throws ProjectionException(Code)(Java Doc)
final public void transform(double[] src, int srcOffset, double[] dest, int dstOffset, int numPts) throws ProjectionException(Code)(Java Doc)
final public void transform(float[] src, int srcOffset, float[] dest, int dstOffset, int numPts) throws ProjectionException(Code)(Java Doc)
abstract protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException(Code)(Java Doc)
final double tsfn(double phi, double sinphi)(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.