sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Desruisseaux (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (SIS-368) When a coordinate operation change the longitude axis range from [-180 … +180]° to [0 … 360]°, the Envelopes.transform(…) result should be normalized accordingly
Date Fri, 20 Oct 2017 14:04:00 GMT

     [ https://issues.apache.org/jira/browse/SIS-368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Martin Desruisseaux resolved SIS-368.
-------------------------------------
    Resolution: Fixed

> When a coordinate operation change the longitude axis range from [-180 … +180]° to
[0 … 360]°, the Envelopes.transform(…) result should be normalized accordingly
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SIS-368
>                 URL: https://issues.apache.org/jira/browse/SIS-368
>             Project: Spatial Information Systems
>          Issue Type: Improvement
>          Components: Referencing
>    Affects Versions: 0.5, 0.6, 0.7
>            Reporter: Martin Desruisseaux
>            Assignee: Martin Desruisseaux
>             Fix For: 0.8
>
>
> There is at least two conventions regarding the range of longitude values: -180° to
180° or 0° to 360°. The range is specified with {{CoordinateSystemAxis}} minimum and maximum
attributes. Most of the times, we use the -180° to +180° convention. However when an envelope
is transformed with {{Envelopes.transform(CoordinateOperation, Envelope)}} method, if the
longitude range declared in the coordinate system changes, we expect the envelope longitude
values to be updated accordingly.
> We could invoke {{GeneralEnvelope.normalize()}} after envelope transformation, but we
don't want to invoke it systematically. If the {{CoordinateOperation}} does not change the
longitude range, then it is safer to let the longitude values as we found them, even if they
are slightly outside the expected range. Example:
> * If source CRS uses longitudes in the \[-180 … +180\]° range and target CRS uses
longitudes are in the \[-180 … +180\]° range, then do nothing. Even if the transformation
result is an envelope spanning 175° to 185° of longitude, leave it as-is because the original
envelope was probably already crossing the anti-meridian (not necessarily using longitudes;
we can cross the anti-meridian with the Mercator projection too).
> * If source CRS uses longitudes in the \[0 … 360\]° range and target CRS uses longitudes
are in the \[0 … 360\]° range, do nothing for the same reason than above.
> * If source CRS uses longitudes in the \[-180 … +180\]° range and target CRS uses
longitudes are in the \[0 … 360\]° range, then if the envelope result is outside the \[0
… 360\]° range, brings it back to the \[0 … 360\]° range as described in {{GeneralEnvelope.normalize()}}.
> * If source CRS uses longitudes in the \[0 … 360\]° range and target CRS uses longitudes
are in the \[-180 … +180\]° range, then if the envelope result is outside the \[-180 …
+180\]° range, brings it back to the \[-180 … +180\]° range.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message