It should go in
http://docs.geotools.org/latest/userguide/library/main/collection.html under
"Join"
Currently it is not described on this page how to get the feature attributes of
a joined table.
Ron
On Thursday, January 23, 2014 12:15 AM, Jody Garnett <jody.garn...@gmail.com>
wrote:
Can you show me where that example should go in the docs? I have added examples
over time, but never had an opportunity to use join myself.
Jody Garnett
On Tue, Dec 24, 2013 at 3:40 AM, Ron Lindhoudt <rlindho...@yahoo.com> wrote:
I got it working now.
>The trick was to extract/evaluate the feature using the join alias as
>attribute.
>It is encrypted in the documentation probably but for experienced geotools
>users/developers but without an example it is difficult for simple developers
>like me.
>
>This is a working example:
>
>
>
>query = new Query("GEO_TABLE");
>
>query.setAlias("a");
>Join join = new Join("ADMIN_TABLE",
>m_filterFactory.equals(m_filterFactory.property("a.\"ID\""),
>m_filterFactory.property("b.\"GEO_ID\"")));
>join.setAlias("b");
>
>List<PropertyName> properties = new ArrayList<PropertyName>();
>properties.add(m_filterFactory.property("THEME_ATTRIBUTE"));
>join.setProperties(properties);
>
>query.getJoins().add(join);
>query.setPropertyNames(new
String[] {"GEOMETRIE"});
>
>FeatureSource featureSource =
>m_datastore.getAbsoluteFeatureSource("GEO_TABLE");
>
>SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder();
>typeBuilder.setName("TEST");
>typeBuilder.add("GEOMETRIE", Geometry.class, crs);
>
>SimpleFeatureType simpleFeatureType = typeBuilder.buildFeatureType();
>
>final SimpleFeatureBuilder featureBuilder = new
>SimpleFeatureBuilder(simpleFeatureType);
>final ListFeatureCollection features = new
>ListFeatureCollection(simpleFeatureType);
>
>FeatureCollection featureCollection = featureSource.getFeatures(query);
>final Expression geometriepath = m_filterFactory.property("GEOMETRIE");
>final Expression joinedfeaturepath = m_filterFactory.property("b");
>
>final Expression attributepath = m_filterFactory.property("THEME_ATTRIBUTE");
>
>featureCollection.accepts( new FeatureVisitor(){
> public void visit(Feature
feature)
> {
> Geometry geom = (Geometry) ((SimpleFeature) feature).getDefaultGeometry();
> featureBuilder.add(geom);
>
> Feature joinedfeature = joinedfeaturepath.evaluate(feature,
>Feature.class); // First extract the joined feature
>
> String attribute = attributepath.evaluate(joinedfeaturepath,
>String.class); // Take the attribute of the joined feature
> featureBuilder.add(attribute);
> features.add(featureBuilder.buildFeature(feature.getIdentifier().getID()));
> }
>}, null);
>
>
>layer = new FeatureLayer(features, styleGeometry); // styleGeometry contains
>rules for THEME_ATTRIBUTE
>
>
>
>
>
>
>
>On Monday, December 23, 2013 4:10 PM, Andrea Aime
><andrea.a...@geo-solutions.it> wrote:
>
>On Mon, Dec 23, 2013 at 2:28 PM, Ron Lindhoudt <rlindho...@yahoo.com> wrote:
>
>Hi Andrea,
>>
>>
>>I sent this mail to the geotools user list but I did not see it distributed
>>yet.
>
>
>It has been distributed, see these public archives:
>http://osgeo-org.1560.x6.nabble.com/geotools-gt2-users-f4317834.html
>
>
>
>It's just that the person that did develop join support is unlikely to answer
>because he's in
>vacation, and normally does not answer anyways, unless, I guess, you have a
>support contract
>with Boundless.
>
>
>I don't know the answer off the top of my head, I'd need to do some research
>myself,
>but as far as I remember, jonining in GeoTools does not work like in
>databases, giving
>you a flat representation of the output, but returns tuples, sets of full
>features,
>with a main feature and some associated features, each one in its own
>attribute, see
>here:
>http://docs.codehaus.org/display/GEOTOOLS/Join+Support
>
>
>
>Cheers
>Andrea
>
>--
>
>== GeoSolutions will be closed for seasonal holidays from 23/12/2013 to
>06/01/2014 ==
>
>
>
>Ing. Andrea Aime
>
>@geowolf
>Technical Lead
>
>
>GeoSolutions S.A.S.
>Via Poggio alle Viti 1187
>55054 Massarosa (LU)
>Italy
>phone: +39 0584 962313
>fax: +39 0584 1660272
>mob: +39 339 8844549
>
>
>http://www.geo-solutions.it/
>http://twitter.com/geosolutions_it
>
>
>-------------------------------------------------------
>
>
>------------------------------------------------------------------------------
>Rapidly troubleshoot problems before they affect your business. Most IT
>organizations don't have a clear picture of how application performance
>affects their revenue. With AppDynamics, you get 100% visibility into your
>Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
>http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
>_______________________________________________
>GeoTools-GT2-Users mailing list
>GeoTools-GT2-Users@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
>
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users