Hi,
Has anyone been able to get a WFS GetFeature fes:Filter with the Temporal
operators to work with an operand of TimePeriod?
The Goeserver GetCapabilities states that the two operand options are
gml:TimeInstant and gml:TimePeriod, but I can only get TimeInstant to work.
Example of gml:TimePeriod that doesn't work ( I also tried different operators
and one level up on the xpath ValueReference, but it seems the issue is
Geoserver parsing the TimePeriod itself)
<GetFeature xmlns="http://www.opengis.net/wfs/2.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:private="http://www.private.com/private/1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:om="http://www.opengis.net/om/2.0"
xmlns:sf="http://www.opengis.net/sampling/2.0"
xmlns:wfs="http://www.opengis.net/wfs/2.0"
xmlns:fes="http://www.opengis.net/fes/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0.0"
service="WFS"
handle="Example Query"
xsi:schemaLocation="http://www.opengis.net/wfs/2.0
http://schemas.opengis.net/wfs/2.0/wfs.xsd http://www.opengis.net/gml/3.2
http://schemas.opengis.net/gml/3.2.1/gml.xsd">
<Query typeNames="private:FeatureName" handle="Query">
<fes:Filter>
<fes:EndedBy>
<fes:ValueReference>private:FeatureName/om:OM_Observation/om:phenomenonTime/gml:TimePeriod</fes:ValueReference>
<gml:TimePeriod gml:id="id1" >
<gml:beginPosition>2017-07-14T20:00:00Z</gml:beginPosition>
<gml:endPosition>2017-07-14T21:00:00Z</gml:endPosition>
</gml:TimePeriod>
</fes:EndedBy>
</fes:Filter>
</Query>
</GetFeature>
Error back from Geoserver with gml:TimePeriod
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExceptionReport xmlns="http://www.opengis.net/ows/1.1">
<Exception exceptionCode="500">
<ExceptionText>[Request parsing failed
Parsing failed for TimePeriod: java.lang.ClassCastException:
org.geotools.temporal.object.DefaultPosition cannot be cast to
org.opengis.temporal.Instant
org.geotools.temporal.object.DefaultPosition cannot be cast to
org.opengis.temporal.Instant]:[Ljava.lang.StackTraceElement;@78093ec5</ExceptionText>
</Exception>
</ExceptionReport>
For reference, here is the query portion of a request using gml:TimeInstant
that works:
<Query typeNames="private:FeatureName" handle="Query">
<fes:Filter>
<fes:TEquals>
<fes:ValueReference>private:FeatureName/om:OM_Observation/om:phenomenonTime/gml:TimePeriod/gml:beginPosition</fes:ValueReference>
<gml:TimeInstant
gml:id="id2"><gml:timePosition>2018-08-14T16:00:00Z</gml:timePosition></gml:TimeInstant>
</fes:TEquals>
</fes:Filter>
</Query>
I tried checking for examples in the unit tests, but from what I found it looks
like they neither use a TimeInstant or a TimePeriod which doesn't really jive
with what the Geoserver GetCapabilities states. The examples also seem to only
show the equivalent of a TimeInstant filtering on a single time.
thanks in advance!
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users