Emmanuel SÉGUIN
http://fr.linkedin.com/in/emmanuelseguin/
______________________________________________________________
Responsable adjoint de l'incubateur
Direction des Services et du Système d'Information
T + 33(0)1 43 98 83 54 ● M +33(0)6 81 97 36 59
Institut National de l'Information Géographique et Forestière
73, AVENUE DE PARIS, 94165 SAINT-MANDE
ign.fr - geoportail.gouv.fr

________________________________________
From: Jody Garnett [jody.garn...@gmail.com]
Sent: 12 August 2015 18:19
To: Emmanuel Seguin
Cc: geotools-gt2-users@lists.sourceforge.net
Subject: Re: [Geotools-gt2-users] WFSDataStore too slow for my use

In uDig we cached the capabilities document on disk locally - for WFS or WMS 
cannot remember which, in order to quickly reconnect.

The WFS protocol does expect clients to do version negotiation, retrieve a 
capabilities document, describe feature type and then get features.

There have been requests for WFS protocol to get a bit smarter (offer paging or 
a filter parameter when connecting) but I have not looked if any of them made 
it into the WFS 2.0 specification.

I guess if you really control both server and client short cut the datastore 
the GML parsers are available and you can issue your GetFeatureRequest by hand.
Thanx jody,

Is there an example available somewhere on how to use the GetFeatureRequest 
element directly ?

Thanx in advance

--
Jody Garnett

On 12 August 2015 at 05:12, Emmanuel Seguin 
<emmanuel.seg...@ign.fr<mailto:emmanuel.seg...@ign.fr>> wrote:
Hi,

I'm writing a little program in which I will be querying objects from a WFS as 
part of a bigger process.

I'm using the WFSDataStoreFactory to create a WFSDataStore => Trouble is the 
creation of the WFSDataStore seems to mean getcapabilities download and 
parsing, something I don't really need given the fact I already know the 
typename and the request parameters I want to use.
The getcapabilities I'm downloading is pretty big (~1Mb) so the program is 
hanging for a while before querying the features.

Is there a way to bypass the use of the WFSDataStore to query directly a WFS 
server and get a SimpleFeatureCollection ?

I'm copying below the relevant part of the code I'm currently using.

Thanx in advance,

// Step 1 - Connection parameters
Map connectionParameters = new HashMap();
connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL",getCapabilities);
connectionParameters.put("WFSDataStoreFactory:TIMEOUT", 15000);
connectionParameters.put("WFSDataStoreFactory:WFS_STRATEGY", "geoserver");

// Step 2 - Get WFSDataStore
WFSDataStoreFactory  dsf = new WFSDataStoreFactory();
WFSDataStore data = dsf.createDataStore(connectionParameters);

// Step 3 - Get SimpleFeatureSource
String typeName = "myTypeName";
SimpleFeatureSource source = data.getFeatureSource( typeName );

// Step 4 - Create intersects filter
FilterFactory2 ff = 
CommonFactoryFinder.getFilterFactory2(GeoTools.getDefaultHints());
ReferencedEnvelope clipEnv = new ReferencedEnvelope(xmin, xmax, ymin, ymax, 
_crs);
Polygon clipPolygon = JTS.toGeometry(clipEnv);
Intersects filter = ff.intersects(ff.property("geom"),ff.literal(clipPolygon));

// Step 5 - Grab data
SimpleFeatureCollection features = source.getFeatures(filter);
------------------------------------------------------------------------------
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net<mailto:GeoTools-GT2-Users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

------------------------------------------------------------------------------
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to