sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1670618 - in /sis/ip-review: Equirectangular.xhtml rev/16736/ rev/16736/Equirectangular.xhtml rev/16736/HEADER.html rev/20874/Equirectangular.xhtml
Date Wed, 01 Apr 2015 11:16:13 GMT
Author: desruisseaux
Date: Wed Apr  1 11:16:13 2015
New Revision: 1670618

URL: http://svn.apache.org/r1670618
Log:
Added IP-review for Equirectangular / PlatteCarrée projections.

Added:
    sis/ip-review/Equirectangular.xhtml   (with props)
    sis/ip-review/rev/16736/
    sis/ip-review/rev/16736/Equirectangular.xhtml   (with props)
    sis/ip-review/rev/16736/HEADER.html   (with props)
    sis/ip-review/rev/20874/Equirectangular.xhtml   (with props)

Added: sis/ip-review/Equirectangular.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/Equirectangular.xhtml?rev=1670618&view=auto
==============================================================================
--- sis/ip-review/Equirectangular.xhtml (added)
+++ sis/ip-review/Equirectangular.xhtml Wed Apr  1 11:16:13 2015
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Equirectangular history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>Equirectangular history</h1>
+  <p>Click on the commit message for inspecting the <code>diff</code> and
how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/PlateCarree.java</code></blockquote>
+<table>
+  <tr>
+    <th>Rev.</th>
+    <th>Date</th>
+    <th>Author</th>
+    <th class="last">Message</th>
+  </tr>
+<tr><td class="rev">30641</td><td>2008-06-12</td><td>acuster</td><td>Copyright
headers: lib/referencing, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30639</td><td>2008-06-12</td><td>acuster</td><td>Copyright
headers: cleanup library/referencing</td></tr>
+<tr><td class="rev">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright:
Update referencing headers</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle
the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move
trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">29723</td><td>2008-03-27</td><td>desruisseaux</td><td>Added
serialVersionIUD in MapProjection with values computed from the 2.4.1 release for cross-version
compatibility. NewZealandMapGrid now creates Complex object in method body on the assumption
that modern compilers can allocate on stack. Provides a way to reinitialize the warnings for
every MapProjections in a JVM. Formatting.</td></tr>
+<tr><td class="rev">29711</td><td>2008-03-25</td><td>desruisseaux</td><td>In
MapProjection, provide more information in the logged warning (especially the projection name)
in order to compensate for the loss of stack trace. In subclasses, replaced "Math." occurences
by a static import for readability (there is a lot of sin(x), cos(x), sqrt(x) etc. calls in
those classes). Also replaced sqrt(x*x + y*y) by hypot(x,y) and (exp(x)-exp(-x))/2 by sinh(x)
which are new functions in Java 5 (hopefully more accurate and/or faster). Applied some Java
5 language syntax (generic types and @Override annotation).</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump
the (at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide
buttons which are not yet used</td></tr>
+<tr><td class="rev">27575</td><td>2007-10-22</td><td>desruisseaux</td><td>Converted
Java source files from ISO-LATIN-1 encoding to UTF-8 (GEOT-1516).</td></tr>
+<tr><td class="rev">26541</td><td>2007-08-14</td><td>desruisseaux</td><td>Merged
recent bug fixes from 2.4 branch.</td></tr>
+<tr><td class="rev">24683</td><td>2007-03-06</td><td>desruisseaux</td><td>Get
the coordinate system (CS) framework to manage axis directions of the kind 'South along 90
deg East' (GEOT-936). The most significant implications were in DefaultCoordinateSystemAxis,
AbstractCS and some package-privated helper classes.</td></tr>
+<tr><td class="rev">24384</td><td>2007-02-14</td><td>desruisseaux</td><td>GEOT-1160:
First working implementation of AbstractAuthorityFactory.find(IdentifiedObject). This includes
a package-privated AuthorityFactoryProxy class, together with many fix in the code base in
order to get CRS.equalsIgnoreCase to work in the ProjectedCRS case.</td></tr>
+<tr><td class="rev">24333</td><td>2007-02-10</td><td>desruisseaux</td><td>GEOT-786:
Rearrange projection constructors and providers, especially in orthographic and stereographic
projection.</td></tr>
+<tr><td class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982:
regroup 'module', 'plugin', 'ext' and 'unsupported' in a common directory.</td></tr>
+<tr><td class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation
of directory tree structure (GEOT-982) phase 1: moved 'src' to 'src/main/java'.</td></tr>
+<tr><td class="rev">22295</td><td>2006-10-20</td><td>desruisseaux</td><td>Added
Lambert Azimuthal Equal Area projection. Various minor cleaning in other projection related
code.</td></tr>
+<tr><td class="rev">21289</td><td>2006-08-30</td><td>desruisseaux</td><td>First
working version of ESRI authority factory. However, the fallback mechanism is not yet in place,
and the corresponding test suite in plugin/epsg-ext-esri doesn't work yet (GEOT-774).</td></tr>
+<tr><td class="rev">20874</td><td>2006-08-07</td><td class="unav">jgarnett</td><td><a
href="rev/20874/Equirectangular.xhtml">ip review</a></td></tr>
+<tr><td class="rev">20539</td><td>2006-07-14</td><td>desruisseaux</td><td>Relicensed
the Proj.4 derived work under LGPL as permitted by Frank Warmerdam on geotools-devel mailing
list on June 21, 2006.</td></tr>
+<tr><td class="rev">18048</td><td>2006-02-16</td><td>desruisseaux</td><td>Replaced
tabulations by spaces.</td></tr>
+<tr><td class="rev">17672</td><td>2006-01-19</td><td>desruisseaux</td><td>Added
@source tag.</td></tr>
+<tr><td class="rev">17660</td><td>2006-01-18</td><td>desruisseaux</td><td>Fixed
SVN attributes, including the addition of URL attribute.</td></tr>
+<tr><td class="rev">17241</td><td>2005-12-09</td><td>desruisseaux</td><td>Initial
round of MapProjection constructors simplification (GEOT-786)</td></tr>
+<tr><td class="rev">17229</td><td>2005-12-08</td><td>desruisseaux</td><td>Refactored
New Zealand Map Grid (NZMG) projection as a subclass of MapProjection.</td></tr>
+<tr><td class="rev">16983</td><td>2005-11-25</td><td>desruisseaux</td><td>Replaced
references to static fields and methods of CitationImpl.* by Citations.*</td></tr>
+<tr><td class="rev">16736</td><td>2005-11-15</td><td class="unav">rschulz</td><td><a
href="rev/16736/Equirectangular.xhtml">Changed Lat_of_origin parameter to standard_parallel_1,
added a separate Plate Carree provider and check that the crs is spherical</a></td></tr>
+<tr><td class="rev">16514</td><td>2005-10-25</td><td>desruisseaux</td><td>Added
a check if order to use an 'Equirectangular' parameter group without 'latitude of origin'
parameter if the latitude of origin is 0.</td></tr>
+<tr><td class="rev">16513</td><td>2005-10-25</td><td>desruisseaux</td><td>Added
Equidistant Cylindrical projection. Added convenience method for data handling in OpenOffice
addin.</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/16736/Equirectangular.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/16736/Equirectangular.xhtml?rev=1670618&view=auto
==============================================================================
--- sis/ip-review/rev/16736/Equirectangular.xhtml (added)
+++ sis/ip-review/rev/16736/Equirectangular.xhtml Wed Apr  1 11:16:13 2015
@@ -0,0 +1,428 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Equirectangular changes for revisions 16735:16736</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>Equirectangular changes for revisions 16735:16736</h1>
+
+<ul>
+  <li>The documentation addition has been omitted.</li>
+  <li>The addition of <code>standardParallel</code> and <code>cosStandardParallel</code>
fields, and the
+      <code>getParameterValues()</code>, <code>hashCode()</code>
and <code>equals(Object)</code> methods
+      have been omitted, since Apache SIS rather manages those information in <code>ContextualParameters</code>.</li>
+  <li>The code in the constructor has been replaced by the pattern applied in all other
projection implementations.</li>
+  <li>Multiplication and division by <code>cosStandardParallel</code> have
been omitted, since Apache SIS rather
+      performs those operations in the (de)normalization transforms.</li>
+  <li>The code creating an <code>EquidistantCylindrical</code> instance
has been replaced by code creating an affine
+      transform.</li>
+  <li>Parameter names appears in <code>org.apache.sis.internal.referencing.provider</code>
package, but are retrieved
+      from the sources (EPSG registry and remotesensing.org web site).</li>
+</ul>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space
--ignore-eol-style" -r16735:16736 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/PlateCarree.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 16735</th><th>Revision 16736</th></tr>
+<tr><td><pre>// J2SE dependencies and extensions
+import java.awt.geom.Point2D;
+
+// OpenGIS dependencies
+import org.opengis.parameter.ParameterDescriptor;
+import org.opengis.parameter.ParameterDescriptorGroup;</pre></td>
+<td><pre>// J2SE dependencies and extensions
+import java.awt.geom.Point2D;
+<span class="add">import java.util.Collection;</span>
+
+<span class="add">import javax.units.NonSI;</span>
+<span class="add"></span>
+// OpenGIS dependencies
+import org.opengis.parameter.ParameterDescriptor;
+import org.opengis.parameter.ParameterDescriptorGroup;</pre></td></tr>
+<tr><td><pre>// Geotools dependencies
+import org.geotools.metadata.iso.citation.CitationImpl;
+import org.geotools.referencing.NamedIdentifier;
+import org.geotools.resources.i18n.VocabularyKeys;
+import org.geotools.resources.i18n.Vocabulary;
+
+
+/**
+<span class="del"> * Equidistant cylindrical projection. This is used in, for example,
&lt;cite&gt;WGS84 / Plate</span>
+<span class="del"> * Carree&lt;/cite&gt; (EPSG:32662). In the particular case
where the {@linkplain #latitudeOfOrigin</span>
+<span class="del"> * latitude of origin} is 0°, this projection is also called Equirectangular.</span>
+ *
+ * @see &lt;A HREF="http://mathworld.wolfram.com/CylindricalEquidistantProjection.html"&gt;Mercator
projection on MathWorld&lt;/A&gt;
+ * @see &lt;A HREF="http://www.remotesensing.org/geotiff/proj_list/equirectangular.html"&gt;Equirectangular&lt;/A&gt;
+ *</pre></td>
+<td><pre>// Geotools dependencies
+import org.geotools.metadata.iso.citation.CitationImpl;
+import org.geotools.referencing.NamedIdentifier;
+<span class="add">import org.geotools.referencing.operation.projection.Mercator.Provider2SP;</span>
+<span class="add">import org.geotools.resources.i18n.ErrorKeys;</span>
+<span class="add">import org.geotools.resources.i18n.Errors;</span>
+import org.geotools.resources.i18n.VocabularyKeys;
+import org.geotools.resources.i18n.Vocabulary;
+
+
+/**
+<span class="add"> * Equidistant cylindrical projection (EPSG code 9823).  In the particular
case where the standard_parallel_1</span>
+<span class="add"> * is 0�, this projection is also called Plate Carree
or Equirectangular.</span>
+ *
+<span class="add"> * This is used in, for example, &lt;cite&gt;WGS84 / Plate
Carree&lt;/cite&gt; (EPSG:32662).</span>
+<span class="add"> *</span>
+<span class="add"> * &lt;strong&gt;References:&lt;/strong&gt;&lt;ul&gt;</span>
+<span class="add"> *   &lt;li&gt;John P. Snyder (Map Projections - A Working
Manual,&lt;br&gt;</span>
+<span class="add"> *       U.S. Geological Survey Professional Paper 1395, 1987)&lt;/li&gt;</span>
+<span class="add"> *   &lt;li&gt;"Coordinate Conversions and Transformations
including Formulas",&lt;br&gt;</span>
+<span class="add"> *       EPSG Guidence Note Number 7 part 2, Version 24.&lt;/li&gt;</span>
+<span class="add"> * &lt;/ul&gt;</span>
+<span class="add"> *</span>
+ * @see &lt;A HREF="http://mathworld.wolfram.com/CylindricalEquidistantProjection.html"&gt;Mercator
projection on MathWorld&lt;/A&gt;
+ * @see &lt;A HREF="http://www.remotesensing.org/geotiff/proj_list/equirectangular.html"&gt;Equirectangular&lt;/A&gt;
+ *</pre></td></tr>
+<tr><td><pre> */
+public class EquidistantCylindrical extends MapProjection {
+    /**
+<span class="del">     * Cosinus of the {@linkplain #latitudeOfOrigin latitude of origin}.</span>
+     */
+<span class="del">    private final double phi;</span>
+
+    /**
+     * Constructs a new map projection from the supplied parameters.
+     *
+     * @param  parameters The parameter values in standard units.
+     * @throws ParameterNotFoundException if a mandatory parameter is missing.
+     */
+<span class="del">    protected EquidistantCylindrical(final ParameterValueGroup parameters)</span>
+            throws ParameterNotFoundException
+    {
+        // Fetch parameters
+<span class="del">        super(parameters, Provider.PARAMETERS.descriptors());</span>
+<span class="del">        phi = Math.cos(latitudeOfOrigin);</span>
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public ParameterDescriptorGroup getParameterDescriptors() {
+<span class="del">        return (phi==1) ? Provider.EQUIRECTANGULAR_PARAMETERS</span>
+<span class="del">                        : Provider.EQUIDISTANT_PARAMETERS;</span>
+    }
+
+    /**
+     * Transforms the specified (&lt;var&gt;x&lt;/var&gt;,&lt;var&gt;y&lt;/var&gt;)
coordinate (units in radians)
+     * and stores the result in &lt;code&gt;ptDst&lt;/code&gt; (linear distance
on a unit sphere).
+     */</pre></td>
+<td><pre> */
+public class EquidistantCylindrical extends MapProjection {
+    /**
+<span class="add">     * Cosinus of the standard_parallel_1 parameter.</span>
+     */
+<span class="add">    private final double cosStandardParallel;</span>
+
+    /**
+<span class="add">     * standard_parallel_1 parameter, used in getParameterValues().</span>
+<span class="add">     * Set to {@link Double#NaN} for the {@code Plate_Carree} case.</span>
+<span class="add">     */</span>
+<span class="add">    private final double standardParallel;</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+     * Constructs a new map projection from the supplied parameters.
+     *
+     * @param  parameters The parameter values in standard units.
+     * @throws ParameterNotFoundException if a mandatory parameter is missing.
+     */
+<span class="add">    protected EquidistantCylindrical(final ParameterValueGroup parameters,
final Collection expected)</span>
+            throws ParameterNotFoundException
+    {
+        // Fetch parameters
+<span class="add">        super(parameters, expected);</span>
+<span class="add"></span>
+<span class="add">        if (expected.contains(Provider.STANDARD_PARALLEL)) {</span>
+<span class="add">            standardParallel = Math.abs(doubleValue(expected,</span>
+<span class="add">                                        Provider2SP.STANDARD_PARALLEL,
parameters));</span>
+<span class="add">            ensureLatitudeInRange(Provider.STANDARD_PARALLEL, standardParallel,
false);</span>
+<span class="add">            cosStandardParallel = Math.cos(standardParallel);</span>
+<span class="add">        } else {</span>
+<span class="add">            // standard parallel is the equator (Plate Carree or
Equirectangular)</span>
+<span class="add">            standardParallel = Double.NaN;</span>
+<span class="add">            cosStandardParallel = 1.0;</span>
+    }
+<span class="add">        assert latitudeOfOrigin == 0 : latitudeOfOrigin;</span>
+<span class="add">    }</span>
+
+    /**
+     * {@inheritDoc}
+     */
+    public ParameterDescriptorGroup getParameterDescriptors() {
+<span class="add">        return (Double.isNaN(standardParallel)) ? Provider_PlateCarree.PARAMETERS</span>
+<span class="add">                                          : Provider.PARAMETERS;</span>
+    }
+
+    /**
+<span class="add">     * {@inheritDoc}</span>
+<span class="add">     */</span>
+<span class="add">    public ParameterValueGroup getParameterValues() {</span>
+<span class="add">        final ParameterValueGroup values = super.getParameterValues();</span>
+<span class="add">        if (!Double.isNaN(standardParallel)) {</span>
+<span class="add">            final Collection expected = getParameterDescriptors().descriptors();</span>
+<span class="add">            set(expected, Provider.STANDARD_PARALLEL, values, standardParallel);</span>
+<span class="add">        }</span>
+<span class="add">        return values;</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+     * Transforms the specified (&lt;var&gt;x&lt;/var&gt;,&lt;var&gt;y&lt;/var&gt;)
coordinate (units in radians)
+     * and stores the result in &lt;code&gt;ptDst&lt;/code&gt; (linear distance
on a unit sphere).
+     */</pre></td></tr>
+<tr><td><pre>protected Point2D transformNormalized(double x, double y,
final Point2D ptDst)
+        throws ProjectionException
+{
+<span class="del">    x *= phi;</span>
+    if (ptDst != null) {
+        ptDst.setLocation(x,y);
+        return ptDst;</pre></td>
+<td><pre>protected Point2D transformNormalized(double x, double y, final Point2D
ptDst)
+        throws ProjectionException
+{
+<span class="add">    x *= cosStandardParallel;</span>
+    if (ptDst != null) {
+        ptDst.setLocation(x,y);
+        return ptDst;</pre></td></tr>
+<tr><td><pre>protected Point2D inverseTransformNormalized(double x, double
y, final Point2D ptDst)
+        throws ProjectionException
+{
+<span class="del">    x /= phi;</span>
+    if (ptDst != null) {
+        ptDst.setLocation(x,y);
+        return ptDst;</pre></td>
+<td><pre>protected Point2D inverseTransformNormalized(double x, double y, final
Point2D ptDst)
+        throws ProjectionException
+{
+<span class="add">    x /= cosStandardParallel;</span>
+    if (ptDst != null) {
+        ptDst.setLocation(x,y);
+        return ptDst;</pre></td></tr>
+<tr><td><pre>}
+
+/**
+ * The {@link org.geotools.referencing.operation.MathTransformProvider} for an
+ * {@link org.geotools.referencing.operation.projection.EquidistantCylindrical}.
+ *</pre></td>
+<td><pre>}
+
+/**
+<span class="add"> * Returns a hash value for this projection.</span>
+<span class="add"> */</span>
+<span class="add">public int hashCode() {</span>
+<span class="add">    final long code = Double.doubleToLongBits(standardParallel);</span>
+<span class="add">    return ((int)code ^ (int)(code &gt;&gt;&gt; 32))
+ 37*super.hashCode();</span>
+<span class="add">}</span>
+<span class="add"></span>
+<span class="add">/**</span>
+<span class="add"> * Compares the specified object with this map projection for equality.</span>
+<span class="add"> */</span>
+<span class="add">public boolean equals(final Object object) {</span>
+<span class="add">    if (object == this) {</span>
+<span class="add">        // Slight optimization</span>
+<span class="add">        return true;</span>
+<span class="add">    }</span>
+<span class="add">    if (super.equals(object)) {</span>
+<span class="add">        final EquidistantCylindrical that = (EquidistantCylindrical)
object;</span>
+<span class="add">        return equals(this.standardParallel,  that.standardParallel);</span>
+<span class="add">    }</span>
+<span class="add">    return false;</span>
+<span class="add">}</span>
+<span class="add"></span>
+<span class="add">/**</span>
+ * The {@link org.geotools.referencing.operation.MathTransformProvider} for an
+ * {@link org.geotools.referencing.operation.projection.EquidistantCylindrical}.
+ *</pre></td></tr>
+<tr><td><pre> */
+public static final class Provider extends AbstractProvider {
+    /**
+<span class="del">     * The parameters group, which mix "Equirectangular" and "Equidistant
cylindrical"</span>
+<span class="del">     * together in order to allows flexible construction.</span>
+     */
+<span class="del">    static final ParameterDescriptorGroup PARAMETERS;</span>
+
+    /**
+<span class="del">     * The parameter group for the equidistant projection.</span>
+     */
+<span class="del">    static final ParameterDescriptorGroup EQUIDISTANT_PARAMETERS;</span>
+
+    /**
+<span class="del">     * The parameter group for the equirectangular projection.</span>
+     */
+<span class="del">    static final ParameterDescriptorGroup EQUIRECTANGULAR_PARAMETERS;</span>
+
+    /**
+<span class="del">     * Creates all parameter groups.</span>
+     */
+<span class="del">    static {</span>
+<span class="del">        final NamedIdentifier GEOTIFF, OGC0, OGC, EPSG, CODE, GEOTOOLS;</span>
+<span class="del">        GEOTIFF  = new NamedIdentifier(CitationImpl.GEOTIFF, "CT_Equirectangular");</span>
+<span class="del">        OGC0     = new NamedIdentifier(CitationImpl.OGC,     "Equirectangular");</span>
+<span class="del">        OGC      = new NamedIdentifier(CitationImpl.OGC,     "Equidistant_Cylindrical");</span>
+<span class="del">        EPSG     = new NamedIdentifier(CitationImpl.EPSG,    "Equidistant
Cylindrical");</span>
+<span class="del">        CODE     = new NamedIdentifier(CitationImpl.EPSG,    "9823");</span>
+<span class="del">        GEOTOOLS = new NamedIdentifier(CitationImpl.GEOTOOLS, Vocabulary.formatInternational(</span>
+<span class="del">                                       VocabularyKeys.EQUIDISTANT_CYLINDRICAL_PROJECTION));</span>
+
+<span class="del">        final ParameterDescriptor[] PARAM = new ParameterDescriptor[]
{</span>
+            SEMI_MAJOR,          SEMI_MINOR,
+<span class="del">            LATITUDE_OF_ORIGIN,  CENTRAL_MERIDIAN,</span>
+<span class="del">            FALSE_EASTING,       FALSE_NORTHING</span>
+<span class="del">        };</span>
+<span class="del">        final ParameterDescriptor[] PARAM0 = new ParameterDescriptor[]
{</span>
+<span class="del">            SEMI_MAJOR,          SEMI_MINOR,</span>
+                                 CENTRAL_MERIDIAN,
+            FALSE_EASTING,       FALSE_NORTHING
+<span class="del">        };</span>
+
+<span class="del">        PARAMETERS = createDescriptorGroup(new NamedIdentifier[]
{</span>
+<span class="del">                     OGC, OGC0, EPSG, CODE, GEOTIFF, GEOTOOLS}, PARAM);</span>
+<span class="del">        EQUIDISTANT_PARAMETERS = createDescriptorGroup(new NamedIdentifier[]
{</span>
+<span class="del">                     OGC, EPSG, CODE, GEOTOOLS}, PARAM);</span>
+<span class="del">        EQUIRECTANGULAR_PARAMETERS = createDescriptorGroup(new NamedIdentifier[]
{</span>
+<span class="del">                     OGC0, GEOTIFF}, PARAM0);</span>
+<span class="del">    }</span>
+<span class="del"></span>
+    /**
+     * Constructs a new provider.
+     */
+<span class="del">    public Provider() {</span>
+        super(PARAMETERS);
+    }</pre></td>
+<td><pre> */
+public static final class Provider extends AbstractProvider {
+    /**
+<span class="add">     * The operation parameter descriptor for the {@link #standardParallel
standard parallel}</span>
+<span class="add">     * parameter value. Valid values range is from -90 to 90�.
Default value is 0.</span>
+     */
+<span class="add">    public static final ParameterDescriptor STANDARD_PARALLEL = createDescriptor(</span>
+<span class="add">            new NamedIdentifier[] {</span>
+<span class="add">                new NamedIdentifier(CitationImpl.OGC,      "standard_parallel_1"),</span>
+<span class="add">                new NamedIdentifier(CitationImpl.EPSG,     "Latitude
of 1st standard parallel"),</span>
+<span class="add">                new NamedIdentifier(CitationImpl.GEOTIFF,  "StdParallel1")</span>
+<span class="add">            },</span>
+<span class="add">            0, -90, 90, NonSI.DEGREE_ANGLE);</span>
+
+    /**
+<span class="add">     * The parameters group. Note the EPSG includes a "Latitude of
natural origin" parameter instead</span>
+<span class="add">     * of "standard_parallel_1". I have sided with ESRI and Snyder
in this case.</span>
+     */
+<span class="add">    static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(new
NamedIdentifier[] {</span>
+<span class="add">           new NamedIdentifier(CitationImpl.OGC,      "Equidistant_Cylindrical"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.EPSG,     "Equidistant
Cylindrical"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.ESRI,     "Equidistant_Cylindrical"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.EPSG,     "9823"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.GEOTOOLS, Vocabulary.formatInternational(</span>
+<span class="add">                                VocabularyKeys.EQUIDISTANT_CYLINDRICAL_PROJECTION))</span>
+<span class="add">        }, new ParameterDescriptor[] {</span>
+<span class="add">            SEMI_MAJOR,       SEMI_MINOR,</span>
+<span class="add">            CENTRAL_MERIDIAN, STANDARD_PARALLEL,</span>
+<span class="add">            FALSE_EASTING,    FALSE_NORTHING</span>
+<span class="add">        });</span>
+
+    /**
+<span class="add">     * Constructs a new provider.</span>
+     */
+<span class="add">    public Provider() {</span>
+<span class="add">        super(PARAMETERS);</span>
+<span class="add">    }</span>
+
+    /**
+<span class="add">     * Returns the operation type for this map projection.</span>
+     */
+<span class="add">    protected Class getOperationType() {</span>
+<span class="add">        return CylindricalProjection.class;</span>
+<span class="add">    }</span>
+
+<span class="add">    /**</span>
+<span class="add">     * Creates a transform from the specified group of parameter
values.</span>
+<span class="add">     *</span>
+<span class="add">     * @param  parameters The group of parameter values.</span>
+<span class="add">     * @return The created math transform.</span>
+<span class="add">     * @throws org.opengis.parameter.ParameterNotFoundException if
a required parameter was not found.</span>
+<span class="add">     */</span>
+<span class="add">    public MathTransform createMathTransform(final ParameterValueGroup
parameters)</span>
+<span class="add">            throws ParameterNotFoundException</span>
+<span class="add">    {</span>
+<span class="add">        if (isSpherical(parameters)) {</span>
+<span class="add">      final Collection descriptors = PARAMETERS.descriptors();</span>
+<span class="add">      return new EquidistantCylindrical(parameters, descriptors);</span>
+<span class="add">     } else {</span>
+<span class="add">      throw new UnsupportedOperationException(Errors.format(</span>
+<span class="add">                    ErrorKeys.ELLIPTICAL_NOT_SUPPORTED));</span>
+<span class="add">     }</span>
+<span class="add">    }</span>
+<span class="add">}</span>
+<span class="add"></span>
+<span class="add">/**</span>
+<span class="add"> * Another {@link org.geotools.referencing.operation.MathTransformProvider}
for an</span>
+<span class="add"> * {@link org.geotools.referencing.operation.projection.EquidistantCylindrical}.</span>
+<span class="add"> *</span>
+<span class="add"> * @see org.geotools.referencing.operation.DefaultMathTransformFactory</span>
+<span class="add"> *</span>
+<span class="add"> * @since 2.2</span>
+<span class="add"> * @version $Id$</span>
+<span class="add"> * @author Rueben Schulz</span>
+<span class="add"> */</span>
+<span class="add">public static final class Provider_PlateCarree extends AbstractProvider
{</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * The parameters group.</span>
+<span class="add">     */</span>
+<span class="add">    static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(new
NamedIdentifier[] {</span>
+<span class="add">            new NamedIdentifier(CitationImpl.ESRI,     "Plate_Carree"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.OGC,      "Equirectangular"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.GEOTIFF,  "CT_Equirectangular"),</span>
+<span class="add">            new NamedIdentifier(CitationImpl.GEOTOOLS, Vocabulary.formatInternational(</span>
+<span class="add">                                VocabularyKeys.EQUIDISTANT_CYLINDRICAL_PROJECTION))</span>
+<span class="add">        }, new ParameterDescriptor[] {</span>
+            SEMI_MAJOR,          SEMI_MINOR,
+                                 CENTRAL_MERIDIAN,
+            FALSE_EASTING,       FALSE_NORTHING
+<span class="add">        });</span>
+
+    /**
+     * Constructs a new provider.
+     */
+<span class="add">   public Provider_PlateCarree() {</span>
+        super(PARAMETERS);
+    }</pre></td></tr>
+<tr><td><pre>         * @return The created math transform.
+         * @throws org.opengis.parameter.ParameterNotFoundException if a required parameter
was not found.
+         */
+<span class="del">        public MathTransform createMathTransform(final ParameterValueGroup
parameters)</span>
+<span class="del">                throws ParameterNotFoundException</span>
+<span class="del">        {</span>
+<span class="del">            return new EquidistantCylindrical(parameters);</span>
+        }
+    }
+}</pre></td>
+<td><pre>         * @return The created math transform.
+         * @throws org.opengis.parameter.ParameterNotFoundException if a required parameter
was not found.
+         */
+<span class="add">       protected MathTransform createMathTransform(ParameterValueGroup
parameters)</span>
+<span class="add">          throws ParameterNotFoundException {</span>
+<span class="add">         if (isSpherical(parameters)) {</span>
+<span class="add">          final Collection descriptors = PARAMETERS.descriptors();</span>
+<span class="add">          return new EquidistantCylindrical(parameters, descriptors);</span>
+<span class="add">         } else {</span>
+<span class="add">          throw new UnsupportedOperationException(Errors.format(</span>
+<span class="add">                        ErrorKeys.ELLIPTICAL_NOT_SUPPORTED));</span>
+        }
+    }
+}
+<span class="add">}</span></pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/16736/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/16736/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/16736/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/16736/HEADER.html?rev=1670618&view=auto
==============================================================================
--- sis/ip-review/rev/16736/HEADER.html (added)
+++ sis/ip-review/rev/16736/HEADER.html Wed Apr  1 11:16:13 2015
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 16736</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 16736</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rschulz</td></tr>
+  <tr><td><b>Date:</b></td><td>2005-11-15</td></tr>
+  <tr><td><b>Message:</b></td><td>Changed Lat_of_origin
parameter to standard_parallel_1, added a separate Plate Carree provider and check that the
crs is spherical</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/16736/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/16736/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/20874/Equirectangular.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/20874/Equirectangular.xhtml?rev=1670618&view=auto
==============================================================================
--- sis/ip-review/rev/20874/Equirectangular.xhtml (added)
+++ sis/ip-review/rev/20874/Equirectangular.xhtml Wed Apr  1 11:16:13 2015
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Equirectangular changes for revisions 20873:20874</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>Equirectangular changes for revisions 20873:20874</h1>
+<p>Changes in GeoTools header only. The removal of the <cite>"or (at your option)
any later version"</cite> clause
+must be keep in Geotk for every classes having contribution from a developer other than those
who accepted re-licensing.
+This header does not apply to Apache SIS, since the above-cited contributions are omitted.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space
--ignore-eol-style" -r20873:20874 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/PlateCarree.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 20873</th><th>Revision 20874</th></tr>
+<tr><td><pre>/*
+<span class="del"> * Geotools 2 - OpenSource mapping toolkit</span>
+<span class="del"> * (C) 2005, Geotools Project Managment Committee (PMC)</span>
+ *
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation; either</pre></td>
+<td><pre>/*
+<span class="add"> *    GeoTools - OpenSource mapping toolkit</span>
+<span class="add"> *    http://geotools.org</span>
+ *
+<span class="add"> *   (C) 2005-2006, Geotools Project Managment Committee (PMC)</span>
+<span class="add"> *</span>
+ *    This library is free software; you can redistribute it and/or
+ *    modify it under the terms of the GNU Lesser General Public
+ *    License as published by the Free Software Foundation; either</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/20874/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/20874/Equirectangular.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html



Mime
View raw message