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

Reply via email to