I like the 2nd option you propose. We have an API challenge with ReferencedEnevelope in that calling new ReferencedEnvelope is *never* the correct course of action (since depending on the CRS we may need to create a ReferencedEnvelope or ReferencedEnvelope3D.
We have a factory method ReferencedEnvelope.create( .. ) that should be used. This would also be an appropriate location to detect an empty bounds and respond accordingly. -- Jody Garnett On 8 June 2015 at 02:30, Peilke, Hendrik <[email protected]> wrote: > Hi, > > > > while writing some tests for the handling of empty imagemosaics, I noticed > the following: If new ReferencedEnvelope(GeneralEnvelope ...) gets called > and the GeneralEnvelope is empty (maxx < minx or mmaxy < miny), the > resulting ReferencedEnvelope is not. > > > > Investigating further shows, that the constructor delegates to its > superclass constuctor Envelope(minx,maxx,miny,maxy) inside JTS which then > uses the method init(minx,maxx,miny,maxy). This method switches minx and > maxx, if minx is greater than maxx and same with miny and maxy (by the way > also the setBounds method calls this init method). So if the > GeneralEnvelope was empty, the resulting ReferencedEnvelope is not. > > > > It seems odd, that JTS does this switching here, but they probably have > not thought that anybody would like to construct an empy ReferencedEnvelope > by any other statement than new ReferencedEnvelope(). > > > > Imho this behavior is unwanted and can be solved by either > > - changing JTS, which will cause a lot of code to fail and probably > somebody had something in mind when switching coordinates (if not, then > this should be the right place -> all users and code should be able to > provide correct order (as in clockwise or counterclockwise coordinates for > Polygons and their holes)) > > - care for the special case of empty Envelopes in the ReferencedEnvelope > class (and maybe also for empty bounding boxes and Rectangle2Ds?), but this > would also leave out the robust coordinate switching of JTS and the > question is if this is really the right place (seems only if JTS would not > change and then what other Envelopes does GeoTools implement?) > > - care for the special case in the code where needed. This seems wrong to > me, but is the only possibility, if the base is to be left as is > > > > Are there any other possibilities? Or did this problem occur already > (maybe with an empty bounding box)? Did I miss something, which lead to > total misunderstanding? If not, what suggestion would be the most > preferable? > > > > Regards, > > Hendrik Peilke > > ------------------------------ > IBYKUS AG für Informationstechnologie, Erfurt / HRB 108616 - D-Jena / > Vorstand: Helmut C. Henkel, Dr. Lutz Richter > Vorsitzender des Aufsichtsrates: Dr. Wolfgang Habel > > > ------------------------------------------------------------------------------ > > _______________________________________________ > GeoTools-Devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/geotools-devel > >
------------------------------------------------------------------------------
_______________________________________________ GeoTools-Devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-devel
