Wow; Lion added the "great" autocorrect feature from iPhone into the mix. Let 
me try that again. 

"Taking" discussion to the bug report; there is a fix (committed) that you can 
try on Monday. 

-- 
Jody Garnett


On Saturday, 24 September 2011 at 10:12 PM, Jody Garnett wrote:

>  Thanking discussion to the bug report; I have applied a fix and would like 
> to ask you to test when you are back at work. 
> 
> -- 
> Jody Garnett
> 
> 
> On Saturday, 24 September 2011 at 3:56 PM, Jody Garnett wrote:
> 
> >  Back from foss4g now so I can focus on this one. Thanks for the 
> > http://jira.codehaus.org/browse/UDIG-1818 bug report.
> > 
> > Sorry for the earlier confused response BasicFeatureRenderer is our code 
> > and we should be able to fix this. Both the old and the new code snippet 
> > are using the retired DefaultMapLayer. I would like to make sure we use 
> > FeatureLayer and avoid a round of indirection.
> > 
> > Here is my problem with the old code - ForceCoordinateSystemFeatureResults 
> > is basically us not trusting the FeatureCollection provided by the 
> > datastore; and wrapping it up in something we know will know will copy all 
> > the values; and package them up into a new feature with the "Correct" CRS.
> > 
> > The problem is we lose the ability of make fast queries as we pan and zoom 
> > around! Resulting in a much much slower application. 
> > 
> > So could we try the following:
> > a) update the code to use FeatureLayer
> > b) sort out what DataStore implementations are giving us problems (it 
> > sounds like Shapefile?).
> > c) For each datastore that is not working we can fix the GeoTools code. 
> > Example: Internally to shapefile we can have it wrap the returned (smaller) 
> > result with ForceCoordinateSystemFeatureResults as it pans around the 
> > screen.
> > 
> > It also looks like the second code has a trouble; there are two methods we 
> > can use when defining a Query 
> > (http://docs.geotools.org/latest/userguide/library/api/datastore.html#simplefeaturesource):
> > 
> > Override this value in the event the datasource is incorrect and your user 
> > knows the correct CoordianteReferenceSystem.
> > 
> > Query.getCoordinateSystem()
> > Query.setCoordinateSystem(CoordinateReferenceSystem)
> > 
> > 
> > Used to transform the information to requested CoordinateReferenceSystem.
> > 
> > Query.getCoordinateSystemReproject()
> > Query.setCoordinateSystemReproject(CoordinateReferenceSystem)
> > 
> > 
> > With that in mind the second code example looks correct; it uses 
> > setCoordianteReferenceSystem correctly. It is just the implementation of 
> > the datastore that is wrong?
> > 
> > -- 
> > Jody Garnett
> > 
> > 
> > On Friday, 16 September 2011 at 9:26 AM, Emily Gouge wrote:
> > 
> > > I did some digging and found in the BasicFeatureRenderer these lines 
> > > (from the prepareDraw) function were commented out:
> > > 
> > > FeatureCollection<SimpleFeatureType, SimpleFeature> reprojectingFc = new 
> > > ForceCoordinateSystemFeatureResults(featureSource.getFeatures(), 
> > > layer.getCRS());
> > > layers[0] = new DefaultMapLayer(reprojectingFc, style, "Test");
> > > 
> > > and replaced with this:
> > > 
> > > layers[0] = new DefaultMapLayer(featureSource, style, "Test"); 
> > > DefaultQuery query = new DefaultQuery(Query.ALL);
> > > query.setTypeName(featureSource.getSchema().getTypeName());
> > > query.setCoordinateSystem(layerCRS);
> > > layers[0].setQuery(query);
> > > 
> > > If I un-do this change then the layer renders fine.
> > > 
> > > I think there are multiple issues with this "new" code:
> > > 1) The layers[0].setQuery is called here, however it is also called 
> > > later in the execution process in the setQueries() function. So first 
> > > query which is supposed to set the CRS is over-written and not used when 
> > > rendering.
> > > 
> > > 2) Geotools ignores the CoordinateSystem of the layer passed in the 
> > > layer. Even when I fixed the problem outlined in (1), the issues was 
> > > not resolved. I looked a bit into the geotools StreamingRenderer and it 
> > > didn't look to me like it used the CRS of the query, however I am not 
> > > familiar enough with this code to pinpoint the issue (if there even is 
> > > one).
> > > 
> > > 
> > > I'm wondering if anyone knows what prompted this change in the rendering 
> > > process and if it can be reverted back or made to work so projections 
> > > can be set on layers.
> > > 
> > > Thanks,
> > > Emily 
> 

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to