This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-3.1
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 574a063cc0354fd5fd6764191a0f886817224e92
Merge: 7d1c6db fb28872
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Oct 19 13:24:14 2019 +0200

    Merge branch 'geoapi-4.0' into geoapi-3.1.

 NOTICE                                             |   2 +-
 README                                             |   2 +-
 application/sis-console/src/main/artifact/README   |   2 +-
 .../org/apache/sis/internal/doclet/Doclet.java     |   8 -
 .../org/apache/sis/coverage/SampleDimension.java   |   6 +-
 .../sis/internal/referencing/provider/ESRI.java    |  59 ++-
 .../referencing/provider/MapProjection.java        |  56 +--
 .../provider/PolarStereographicSouth.java          |   4 +-
 .../referencing/provider/SatelliteTracking.java    | 145 ++++++++
 .../referencing/provider/package-info.java         |   3 +-
 .../sis/referencing/AbstractIdentifiedObject.java  |  37 +-
 .../main/java/org/apache/sis/referencing/CRS.java  |  42 +--
 .../operation/projection/Polyconic.java            |   2 +-
 .../operation/projection/SatelliteTracking.java    | 377 +++++++++++++++++++
 .../operation/projection/package-info.java         |   3 +-
 .../operation/transform/IterationStrategy.java     |  15 +-
 ...g.opengis.referencing.operation.OperationMethod |   1 +
 .../referencing/provider/Descriptions.properties   |   5 +
 .../apache/sis/geometry/CoordinateFormatTest.java  |   3 +-
 .../referencing/provider/ProvidersTest.java        |  13 +-
 .../java/org/apache/sis/referencing/CRSTest.java   |  16 +-
 .../org/apache/sis/referencing/CommonCRSTest.java  |  14 +-
 .../projection/SatelliteTrackingTest.java          | 407 +++++++++++++++++++++
 .../transform/DefaultMathTransformFactoryTest.java |   9 +-
 .../sis/test/suite/ReferencingTestSuite.java       |   3 +-
 .../sis/internal/converter/ConverterRegistry.java  |   7 +
 .../apache/sis/internal/system/DaemonThread.java   |   4 +-
 .../java/org/apache/sis/internal/util/Strings.java |  21 +-
 .../main/java/org/apache/sis/measure/Angle.java    |   2 +-
 .../main/java/org/apache/sis/measure/Range.java    |   4 +-
 .../org/apache/sis/util/collection/WeakEntry.java  |  13 +-
 .../apache/sis/util/collection/WeakHashSet.java    |   7 +-
 .../sis/util/collection/WeakValueHashMap.java      |   7 +-
 ide-project/NetBeans/build.xml                     |   1 +
 pom.xml                                            |  13 +-
 src/main/config/logging.properties                 |   2 +-
 .../apache/sis/internal/netcdf/RasterResource.java |   4 +-
 .../org/apache/sis/internal/netcdf/Variable.java   |  14 +-
 .../sis/internal/netcdf/impl/VariableInfo.java     |  10 +-
 .../apache/sis/internal/netcdf/package-info.java   |   2 +-
 .../internal/storage/io/HyperRectangleReader.java  |  13 +-
 .../org/apache/sis/internal/storage/io/Region.java |  78 +++-
 .../sis/internal/storage/io/package-info.java      |   2 +-
 43 files changed, 1253 insertions(+), 185 deletions(-)

diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
index 694bd48,d553ebf..9386a88
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
@@@ -293,37 -292,19 +293,19 @@@ public abstract class MapProjection ext
      static ParameterBuilder renameAlias(final ParameterDescriptor<Double> 
template, final Citation toRename,
              final ParameterDescriptor<Double> replacement, final 
ParameterBuilder builder)
      {
-         return copyAliases(template, toRename, sameNameAs(toRename, 
replacement),
-                 (ReferenceIdentifier) 
IdentifiedObjects.getIdentifier(replacement, toRename),
-                 builder.addName(template.getName()));
-     }
- 
-     /**
-      * Copies all aliases except the ones for the given authority. If the 
given replacement is non-null,
-      * then it will be used instead of the first occurrence of the omitted 
name.
-      *
-      * <p>This method does not copy the primary name. It is caller's 
responsibility to add it first.</p>
-      *
-      * @param  template     the parameter from which to copy the aliases.
-      * @param  exclude      the authority of the alias to omit. Can not be 
EPSG.
-      * @param  replacement  the alias to use instead of the omitted one, or 
{@code null} if none.
-      * @param  newCode      the identifier to use instead of the omitted one, 
or {@code null} if none.
-      * @param  builder      where to add the aliases.
-      * @return the given {@code builder}, for method call chaining.
-      */
-     private static ParameterBuilder copyAliases(final 
ParameterDescriptor<Double> template, final Citation exclude,
-             GenericName replacement, ReferenceIdentifier newCode, final 
ParameterBuilder builder)
-     {
+         builder.addName(template.getName());
+         GenericName newName = sameNameAs(toRename, replacement);
 -        Identifier newCode = IdentifiedObjects.getIdentifier(replacement, 
toRename);
++        ReferenceIdentifier newCode = (ReferenceIdentifier) 
IdentifiedObjects.getIdentifier(replacement, toRename);
          for (GenericName alias : template.getAlias()) {
-             if (((Identifier) alias).getAuthority() == exclude) {
-                 if (replacement == null) continue;
-                 alias = replacement;
-                 replacement = null;
+             if (((Identifier) alias).getAuthority() == toRename) {
+                 if (newName == null) continue;
+                 alias = newName;
+                 newName = null;
              }
              builder.addName(alias);
          }
 -        for (Identifier id : template.getIdentifiers()) {
 +        for (ReferenceIdentifier id : template.getIdentifiers()) {
-             if (id.getAuthority() == exclude) {
+             if (id.getAuthority() == toRename) {
                  if (newCode == null) continue;
                  id = newCode;
                  newCode = null;
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
index 04238dc,7c0c231..37c51ab
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
@@@ -561,9 -555,9 +555,9 @@@ public final class CRS extends Static 
               * but using base CRS instead. For example if the list of source 
CRS had some projected CRS, we
               * will try with the geographic CRS on which those projected CRS 
are based.
               */
-             if (maxInsideArea < roiArea) {
+             if (Double.isNaN(roiArea) || maxInsideArea < roiArea) {
                  if (tryDerivedCRS) break;                                     
          // Do not try twice.
 -                final SingleCRS[] derivedCRS = new 
SingleCRS[sourceCRS.length];
 +                final CoordinateReferenceSystem[] derivedCRS = new 
CoordinateReferenceSystem[sourceCRS.length];
                  for (int i=0; i < derivedCRS.length; i++) {
                      GeographicBoundingBox bbox = null;
                      final CoordinateReferenceSystem crs = sourceCRS[i];

Reply via email to