Christian Müller ha scritto:
> 1)
> Andrea, after the last messages I would propose:
> Pass the resolution hint if you are sure that nothing bad can happen. 
> However you do it, I rely on getting the hint with feature types having one 
> geometry property with the same CRS. 
> 
> 
> 2) I did a quick implementation of GeneralizingFeatureSource which has a 
> constructor 
> 
> public GeneralizingFeatureSource(FeatureSource<SimpleFeatureType, 
> SimpleFeature> baseFeatureSource,
>                       Map<Double,FeatureSource<SimpleFeatureType, 
> SimpleFeature>> genMap) 
> 
> Ok, if I have all feature sources and distances, life is easy. 
> 
> Some points where I need some help: 
> 
> a)
> I think a better solution would be having the feature type names as 
> arguments for the constructor and addionally a datastore. This would avoid 
> creating unused FeatureSource objects. 
> 
> 
> b) I need some plugin mechanismn for a "GeneralizationFinder". We could 
> resolve this like the JDBC data store by specifing the classname of the JDBC 
> Driver class. A default implementation could read from an xml config file, I 
> need another implementation querying the database. 

I still need to wrap my head around this, let's talk about it a bit
more. Your specific use case assumes you have pre-generalized data 
available. I see this possible as either:
- having multiple feature types available in a single data store
   that have the same structure, and whose geometry is generalized in
   a different view. Point in case, multiple shapefiles, multiple
   database tables or views
- having a single feature type with multiple geometry columns,
   generalized in different ways (that's the way we did it for the
   sigma.openplans.org demo for example, and we used SLD to select
   the proper geometry at the proper scale)

Now, where do we need this finder? And why do we need it in the first
place?
The most GeoServer compatible way I can think of is having a
PyramidDataStore that takes as parameters a reference to another
datastore and some configuration on how to merge the multiple ft/
multiple geom columns into one. This would not require any GeoServer
change, thought it's probably going to require quite some fiddling
with text files.
Another way is to make jdbc-ng only handle this, and add an extra
parameter pointing to a configuration file that specified the
mapping.
Yet another way, which would work only for the "single featuretype
with multiple geom columns" would be to have the ResourcePool
look for a generalizing feature source that can remap the feature
type into one with a single geometry, and support the generalization
hints.
We could support the thing at the datastore level if we had a
generalizing datastore wrapper, in this case we could add an
extension point to the resource pool that looks for a generalizing
wrapper for a given datastore. This is needed because if you
have 5 resolutions, and thus 5 separate feature types, we still
need to come out to the user and report only one merged feature
type, and that requires wrapping the DataStore.getTypeNames
method (which is used in the UI to allow you choose which feature
types to add to GeoServer).

The latter seems the cleanest way, thought it requires some
core changes.
Opinions?

Cheers
Andrea

-- 
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

------------------------------------------------------------------------------
_______________________________________________
Geotools-devel mailing list
Geotools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to