The stereographic case (using USGS formulas) has not been ported to Apache SIS. Instead we use only the formulas provided by the EPSG guide.
Command line:
svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r11367:11368 https://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/Stereographic.java
Revision 11367 | Revision 11368 |
---|---|
* for the later only.
* <br><br>
*
* <strong>WARNING:<strong> Tests points calculated with ArcGIS's "Double Stereographic" are
* not always equal to points calculated with the <code>"Oblique_Stereographic"</code>.
* However, where there are differences, two different implementations of these equations
* (EPSG guidence note 7 and libproj) calculate the same values as we do. Until these |
* for the later only.
* <br><br>
*
* <strong>WARNING:</strong> Tests points calculated with ArcGIS's "Double Stereographic" are
* not always equal to points calculated with the <code>"Oblique_Stereographic"</code>.
* However, where there are differences, two different implementations of these equations
* (EPSG guidence note 7 and libproj) calculate the same values as we do. Until these |
* <br><br> * * The "Polar Stereographic (variant B)", "Stereographic_North_Pole", and * "Stereographic_South_Pole" cases include a "standard_parallel_1" paramter. * This parameter sets the latitude with a scale factor equal to the supplied * scale factor. The "Polar Stereographic (variant B)" recieves its "lattitude_of_origin" * paramater value from the hemisphere of the "standard_parallel_1" value. * <br><br> * |
* <br><br> * * The "Polar Stereographic (variant B)", "Stereographic_North_Pole", and * "Stereographic_South_Pole" cases include a "standard_parallel_1" parameter. * This parameter sets the latitude with a scale factor equal to the supplied * scale factor. The "Polar Stereographic (variant B)" recieves its "latitude_of_origin" * paramater value from the hemisphere of the "standard_parallel_1" value. * <br><br> * |
throws ParameterNotFoundException
{
final Collection descriptors = PARAMETERS.descriptors();
final double latitudeOfOrigin = Math.abs(doubleValue(LATITUDE_OF_ORIGIN, parameters));
if (isSpherical(parameters)) {
// Polar case.
if (Math.abs(latitudeOfOrigin - Math.PI/2) < EPS) {
return new StereographicPolar.Spherical(parameters, descriptors, Double.NaN, EPSG);
}
// Equatorial case. |
throws ParameterNotFoundException { final Collection descriptors = PARAMETERS.descriptors(); //values here are in degrees (the standard units for this parameter) final double latitudeOfOrigin = Math.abs(doubleValue(LATITUDE_OF_ORIGIN, parameters)); if (isSpherical(parameters)) { // Polar case. if (Math.abs(latitudeOfOrigin - 90.0) < EPS) { return new StereographicPolar.Spherical(parameters, descriptors, Double.NaN, EPSG); } // Equatorial case. |
}
} else {
// Polar case.
if (Math.abs(latitudeOfOrigin - Math.PI/2) < EPS) {
return new StereographicPolar(parameters, descriptors, Double.NaN, EPSG);
}
// Generic (oblique) case. |
}
} else {
// Polar case.
if (Math.abs(latitudeOfOrigin - 90.0) < EPS) {
return new StereographicPolar(parameters, descriptors, Double.NaN, EPSG);
}
// Generic (oblique) case. |
throws ParameterNotFoundException
{
final Collection descriptors = PARAMETERS.descriptors();
final double latitudeOfOrigin = Math.abs(doubleValue(LATITUDE_OF_ORIGIN, parameters));
if (isSpherical(parameters)) {
// Polar case.
if (Math.abs(latitudeOfOrigin - Math.PI/2) < EPS) {
return new StereographicPolar.Spherical(parameters, descriptors, Double.NaN, USGS);
}
// Equatorial case. |
throws ParameterNotFoundException { final Collection descriptors = PARAMETERS.descriptors(); //values here are in degrees (the standard units for this parameter) final double latitudeOfOrigin = Math.abs(doubleValue(LATITUDE_OF_ORIGIN, parameters)); if (isSpherical(parameters)) { // Polar case. if (Math.abs(latitudeOfOrigin - 90.0) < EPS) { return new StereographicPolar.Spherical(parameters, descriptors, Double.NaN, USGS); } // Equatorial case. |
}
} else {
// Polar case.
if (Math.abs(latitudeOfOrigin - Math.PI/2) < EPS) {
return new StereographicPolar(parameters, descriptors, Double.NaN, USGS);
}
// Equatorial case. |
}
} else {
// Polar case.
if (Math.abs(latitudeOfOrigin - 90.0) < EPS) {
return new StereographicPolar(parameters, descriptors, Double.NaN, USGS);
}
// Equatorial case. |