Please, have a look at https://osgeo-org.atlassian.net/browse/GEOT-6995. There is an example and also results from debugging the attached example in Geotools 21.2 and GeoTools 25.2. It shows the reason for the issue I am having with 25.2

Peter

Am 07.10.2021 um 09:53 schrieb Peter Friess:

Well, ...

I have created a test example. Very simple, just used your Quickstart and added two statements. I would have uploaded it and created an issue, but the link  (https://osgeo-org.atlassian.net/jira/software/c/projects/GEOT <https://osgeo-org.atlassian.net/jira/software/c/projects/GEOT>) you provided is broken.  As I can't upload the example I attached it here.

Peter

Am 07.10.2021 um 09:40 schrieb Ian Turton:


On Wed, 6 Oct 2021 at 18:02, Peter Friess <pk.fri...@t-online.de <mailto:pk.fri...@t-online.de>> wrote:

    Our application is huge. It is not straightforward to create a
    test example.  Let me respond to what you stated

    > This is the problem!!! You should be passing in *3* then the
    check would pass!

    How should I pass in 3?. All is done inside StreamingRenderer. It
    starts with
    StreamingRenderer.paint
    StreamingRenderer.processStylers
    StreamingRenderer.drawPlain
    StreamingRenderer.processFeature
    StreamingRenderer.processSymbolizers
    StreamingRenderer$RenderableFeature.getShape
    StreamingRenderer$RenderableFeature.getTransformedShape
    and then it calls
    LiteCoordinateSequence.cloneGeometry
    which then does inside this check and throws an exception.

    Means, I do not pass anything. Inside this sequence it uses the
    CoordinateReferenceSystem which it gets from
    SymbolizerAssociation. This CoordinateReferenceSystem returns as
    dimension 2 which then is used in that check. So, I do not pass a
    2. It is all done inside StreamingRenderer. The
    CoordinateReferenceSystemis is created by CRS.decode(code), again
    not my code. As it is a UTM projection the dimension is 2.

    =>  when I create a 2-dimensional point -  new Coordinate(x,y) -
    all works fine.

    =>  when I create a 3-dimensional point - new Coordinate(x,y,z) -
    and I  do *NOT *load the features into memory;all works fine.

    =>  when I create a 3-dimensional point - new Coordinate(x,y,z) -
    and I  do load the points into memory -  DataUtilities.source(
    DataUtilities.collection(source.getFeatures())) - then the
    exception is throw as StreaminReader clones the geometry inside 
    getTransformedShape.

    There is a problem when the geometry gets cloned and when the
    Point is 3D but the CoordinateReferenceSystem is 2D. This did
    perfectly work in version 21.2. And it does *not *work in 25.2

    Shouldn't that be enough information  to understand the problem.


It very well might be but certainly I (and I suspect the other developers) will not expend the effort in our limited spare time to look into this issue if there is no issue raised and if we have to try to figure out a test to demonstrate the issue. You might want to watch a couple of useful videos that explain how this works - The secret life of open source developers (https://media.ccc.de/v/bucharest-322-the-secret-life-of-open-source-developers <https://media.ccc.de/v/bucharest-322-the-secret-life-of-open-source-developers>) and Earning your support instead of buying it (https://vimeo.com/144089061 <https://vimeo.com/144089061>)

Ian

_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to