On Sat, Oct 2, 2010 at 11:34 AM, Andrea Aime
<[email protected]>wrote:
> On Sat, Oct 2, 2010 at 6:12 PM, Justin Deoliveira <[email protected]>
> wrote:
> > Yeah, unfortunately this is a nasty issue. Rob has had this issue before
> as
> > well.
> > On the encoding front the plan was to instead of create a geometry not as
> a
> > jts geometry but as a generic complex attribute. And then have the
> encoding
> > subsystem ignore the regular geometry binding (since it is not a geometry
> > object) and encode it (along with the metadta) as a generic complex
> > attribute.
>
> Wow wow, slow down a little. This seems like a nice idea but I've lost you
> at the beginning of the sentence :-)
>
> So say in the database I store something like:
>
> <GeometryWithMetadata>
> <myMetadata>...
> <myGeometry>...
> </GeometryWithMetadata>
>
> How do I go then to turn it into a GML geometry with with metadata like:
>
> <gml:Polygon>
> <gml:metaDataProperty>
> <gml:GenericMetaData>
> <extention>
> <area uom="m2">8476875.000000</area>
> <length uom="m">108.706000</length>
> <width uom="m">13.863100</width>
> </extention>
> </gml:GenericMetaData>
> </gml:metaDataProperty>
> <gml:exterior>
> <gml:LinearRing>
> <gml:posList>
> 31.214218 43.833347 31.215328 43.833862 31.216240 43.833717 ...
> </gml:posList>
> </gml:LinearRing>
> </gml:exterior>
> </gml:Polygon>
>
> Do you have some code skeleton I can follow?
>
Again this is just an idea at this point but the idea would be to represent
the geometry fully via the geotools feature model rather than a JTS
geometry. So in very rough pseudo code:
ComplexAttribute genericMetaData = createComplexAttribute(...)
ComplexAttribute metadataProperty = createComplexAttribugte(...,
genericMetadata)
...
ComplexAttribute exterior = createCompexAttribute(...)
ComplexAttribute polygon = createComplexAttribute(..., metadataProperty,
polygon)
And then pass the "polygon: ComplexAttribute to the encoder. And because the
polygon is not a jts object the regualr GMLPolygonBinding would not execute.
INstead processing would move up the binding chain to a binding that
can generically encode any ComplexAttribute instance.
Does that make any sense?
> > The parsing front is much harder as Andrea noted. What has been done in
> the
> > past for cases like this and what I think the app-schema folks do is use
> the
> > geometry user data as Andrea noted. But storing a map there that can
> store
> > anything from the crs to this generic metadata. A hack to me sure but not
> > sure we have much else. Unless we introduced some sort of geometry
> wrapper
> > that stored all the metadata explicitly.
> > All in all rolling your own parser is probably better for your sanity
> since
> > the parsing story for complex features is not quite there yet when
> compared
> > to the encoding story.
>
> Cool
>
> Cheers
> Andrea
>
>
> --
> -----------------------------------------------------
> Ing. Andrea Aime
> Senior Software Engineer
>
> GeoSolutions S.A.S.
> Via Poggio alle Viti 1187
> 55054 Massarosa (LU)
> Italy
>
> phone: +39 0584962313
> fax: +39 0584962313
>
> http://www.geo-solutions.it
> http://geo-solutions.blogspot.com/
> http://www.linkedin.com/in/andreaaime
> http://twitter.com/geowolf
>
> -----------------------------------------------------
>
--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel