Hi everyone,
My usage of Complex Features in the subject may not be accurate. So, I
will state my problem (as I understand it) first. Then, I will explain
my use case and finally let you know what I have found upon going
through Geotools code and documentation.
What I am looking for is support for features which can support multiple
values for an attribute, and complex attributes. An example is
multilingual names for a feature. Each feature has a Names field which
is complex, and has {language, name, name_type}. And, there can be
multiple entries of this per features. Does Geotools support this out of
box?
Here is our use case:
We are using an Oracle database to store the feature data (both spatial
and non-spatial). However, this database is normalized. So, multiple
tables should be joined to read features in each layer. We have chosen
to use Geoserver+Geotools to serve the features via WFS. Finally, we are
using QGIS to read/write features using WFS plugin. We want to be enable
the WFS server to serve features with attribute multiplicity and complex
attributes (as described in the problem). From the WFS specification, it
looks like there is support for this. However, for this to work, both
Geoserver and Geotools should support this (along with QGIS of course).
I am not entirely sure if Geoserver does support it (it would be great
if someone can answer this, otherwise I'll post in Geoserver forum).
Coming to Geotools, I see only SimpleFeature (and SimpleFeatureType) in
trunk. Also, all default implementations (ContentDataStore etc.) support
only SimpleFeature. Does this mean, I have to extend Feature (and
FeatureType) to add the functionality to support our use-case? This
would also means creating classes similar to ContentDataStore etc. to
use these new classes.
Here is what I have found so far:
I have seen some wiki pages
(http://docs.codehaus.org/display/GEOTOOLS/Complex-Features+Branch)
which talk about Complex Feature implementation in Geotools. Though it
looks like solving our use case precisely, it can be controlled only
through configuration. As I understand, this involves creating mappings
between XSD exposed to external users and XSDs of individual features.
Reading data this way is straight-forward because of XPath expressions.
However, writing data through this can be cumbersome and not even
possible in some cases. For example, the Names field in our case spans
FEATURE_NAME, LANGUAGE tables where FEATURE_NAME has a foreign-key
referencing the LANGUAGE table (let's say it has 2 columns - id,
lang_name) . When I add a new Feature with English (not the Language id,
but the lang_name, English), how do I specify not to insert data into
LANGUAGE table. Instead, the LANGUAGE table should be looked up with
lang_name, and it's id should be used to insert a row in FEATURE_NAME.
Similar cases are present for Updates and Deletes.
Also,the Complex Features code doesn't seem to be present in trunk yet.
Are there plans to put it on trunk, and release it as a stable version?
Thank you,
Sunil
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users