[udig-devel] Layer Attribute Query
Andy Cox
ivyavenue at hotmail.com
Wed Aug 15 03:51:51 PDT 2007
Jesse,
Thanks for the help. I have got this working as follows
URL shpFileURL = new File("C:/temp/test.shp").toURL();
ShapefileDataStore store = new ShapefileDataStore(shpFileURL);
String nameOfFeatureType = store.getTypeNames()[0];
System.out.println("nameOfFeatureType " + nameOfFeatureType);
FeatureSource source = store.getFeatureSource(nameOfFeatureType);
FilterFactory filterFactory = FilterFactoryFinder.createFilterFactory();
FidFilter filter1 = filterFactory.createFidFilter("test.1");
FidFilter filter2 = filterFactory.createFidFilter("test.2");
Feature feature1 = source.getFeatures(filter1).features().next();
Feature feature2 = source.getFeatures(filter2).features().next();
System.out.println("Num features1: " + source.getFeatures(filter1).size());
System.out.println("Num features2: " + source.getFeatures(filter2).size());
but I would like to perform an attribute query on a field rather than an ID
query, I am trying a new filter
CompareFilter filter1 =
filterFactory.createCompareFilter(CompareFilter.COMPARE_EQUALS);
filter1.addLeftValue(filterFactory.createAttributeExpression("Short_name"));
filter1.addRightValue(filterFactory.createAttributeExpression("CAWSAND DG
RAN"));
CompareFilter filter2 =
filterFactory.createCompareFilter(CompareFilter.COMPARE_EQUALS);
filter2.addLeftValue(filterFactory.createAttributeExpression("Short_name"));
filter2.addRightValue(filterFactory.createAttributeExpression("WEMBURY A"));
Feature feature1 = source.getFeatures(filter1).features().next();
Feature feature2 = source.getFeatures(filter2).features().next();
System.out.println("Num features1: " + source.getFeatures(filter1).size());
System.out.println("Num features2: " + source.getFeatures(filter2).size());
but it does filter the results properly, I get returned too many features.
Is this the correct filter and syntax
Cheers
Andy
_____
From: udig-devel-bounces at lists.refractions.net
[mailto:udig-devel-bounces at lists.refractions.net] On Behalf Of Andy Cox
Sent: 15 August 2007 08:24
To: 'User-friendly Desktop Internet GIS'
Subject: RE: [udig-devel] Layer Attribute Query
Jesse,
Thanks for the pointers. Is there an easy way to search the e-mail list
archives for previous posts as you suggest below ?
Cheers
Andy
_____
From: udig-devel-bounces at lists.refractions.net
[mailto:udig-devel-bounces at lists.refractions.net] On Behalf Of Jesse Eichar
Sent: 14 August 2007 17:28
To: User-friendly Desktop Internet GIS
Subject: Re: [udig-devel] Layer Attribute Query
Hi,
You'll want to look at the code snippets I sent in a previous email and the
Geotools Filters and JTS operations.
Here's a tip:
ff = FilterFactoryFinder.createFilterFactory()
idFilter1 = ff.createFidFilter( id1 );
idFilter2 = ff.createFidFilter( id2 );
or = ff.createLogicFilter( FilterType.LOGIC_OR )
or.addFilter( idFilter1 );
or.addFilter( idFilter2 );
Something like that.
Jesse
On Aug 14, 2007, at 8:21 AM, Andy Cox wrote:
Hello,
I have a polygon layer which has about 10 polygons. I want to get access to
two specific polygons based on attribute query (e.g. their IDs). Then I want
to perform a Boolean spatial intersection to find out they intersect. Does
anyone have any pointers to where I can find some info on this?
Any help greatly appreciated.
Thanks
Andy
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.refractions.net/pipermail/udig-devel/attachments/20070815/1f91447b/attachment-0001.html
More information about the udig-devel
mailing list