When using the following configuration, a POST requests seems to result in Geoserver loading all features from database and performing the BBOX filter internally.
Environment:
- Postgresql: “PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 64-bit”
- Postgis: “POSTGIS=“2.0.3 r11132” GEOS=“3.3.8-CAPI-1.7.8” PROJ=“Rel. 4.8.0, 6 March 2012” GDAL=“GDAL 1.9.2, released 2012/10/08” LIBXML=“2.7.8” LIBJSON=“UNKNOWN” RASTER”
- Geoserver 2.9.1 and 2.10.1
- JVM 1.8.0_112
Table creation:
CREATE TABLE table_wmk_lijn_2016
(
stdx double precision,
stdy double precision,
stdz double precision,
meas_info text,
quality double precision,
fid integer NOT NULL DEFAULT nextval('table_wmk_lijn_2016_seq'::regclass),
objecttype text NOT NULL,
date_recorded timestamp with time zone,
date_modified timestamp with time zone,
username text,
comment_cm text,
height text,
the_geom geometry(LineStringZ,7415),
objectstatus text,
CONSTRAINT table_wmk_lijn_2016_pkey PRIMARY KEY (fid),
CONSTRAINT enforce_dims_geom CHECK (st_ndims(the_geom) = 3),
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'LINESTRING'::text OR the_geom IS NULL),
CONSTRAINT enforce_srid_geom CHECK (st_srid(the_geom) = 7415)
)
POST request example:
<wfs:GetFeature service="WFS" version="1.1.0" resultType="results" outputFormat="text/xml; subtype=gml/3.1.1" xmlns:wfs="http://www.opengis.net/wfs">
<wfs:Query typeName="inl:table_wmk_lijn_2016" srsName="EPSG:7415" xmlns:inl="http://inl.cyclomedia.com">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:BBOX>
<gml:Envelope srsName="EPSG:7415" xmlns:gml="http://www.opengis.net/gml">
<gml:lowerCorner>86620.02749999995 437105.71499999886 -1000</gml:lowerCorner>
<gml:upperCorner>86787.92249999997 437198.7449999985 1000</gml:upperCorner>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
According to the geoserver log file the following DB query is executed:
2017-01-09 11:28:45,572 DEBUG [geotools.jdbc] - SELECT "fid","stdx","stdy","stdz","meas_info","quality","objecttype","date_recorded","date_modified","username","comment_cm","height",encode(ST_AsEWKB("the_geom"),'base64') as "the_geom","objectstatus" FROM "public"."table_wmk_lijn_2016"
|