[mapserver-users] [EXTERNAL] Re: Mapserver 7+oracle - wfs getFeature with filter on numeric field

Smith, Michael ERDC-RDE-CRREL-NH Michael.Smith at erdc.dren.mil
Thu May 14 06:17:07 PDT 2015


Its not clear to me that commas as the decimal separator is supported in XML/GML. I can't find any documentation to indicate that it is. Can you point some out to me?

In any event, I didn't test with comma decimal separators.

Mike


----
Michael Smith
US Army Corps
Remote Sensing GIS/Center
michael.smith at usace.army.mil


From: "Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>" <Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>>
Date: Thursday, May 14, 2015 at 8:54 AM
To: Michael Smith <michael.smith at erdc.dren.mil<mailto:michael.smith at erdc.dren.mil>>
Cc: MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>, thomas bonfort <thomas.bonfort at gmail.com<mailto:thomas.bonfort at gmail.com>>
Subject: Re: [EXTERNAL] Re: [mapserver-users] Mapserver 7+oracle - wfs getFeature with filter on numeric field

Thanks Mike for having a look at it.
Your decimals are separated by a comma or a dot?




"Smith, Michael ERDC-RDE-CRREL-NH" <Michael.Smith at erdc.dren.mil<mailto:Michael.Smith at erdc.dren.mil>>

2015-05-13 18:53


A
        "Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>" <Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>>, thomas bonfort <thomas.bonfort at gmail.com<mailto:thomas.bonfort at gmail.com>>
cc
        MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>
Objet
        Re: [EXTERNAL] Re: [mapserver-users] Mapserver 7+oracle - wfs getFeature with filter on numeric field









Steve,

I tested this out with 7.1 with numeric type fields and it works for me as long as I don't use matchCase="false". That seems to kick it in to a string comparison. matchCase="true" and just PropertyIsEqualTo work fine.

In our metadata we use "gml_types"   "auto" when the database knows the types and explicit declarations (eg "gml_attributename_type"   "integer") when it doesn't work.

The key is that the field type has to report as a numeric type or the backend treats it as a string comparison.

Mike
----
Michael Smith
US Army Corps
Remote Sensing GIS/Center
michael.smith at usace.army.mil<mailto:michael.smith at usace.army.mil>


From: "Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>" <Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>>
Date: Wednesday, May 13, 2015 at 10:35 AM
To: thomas bonfort <thomas.bonfort at gmail.com<mailto:thomas.bonfort at gmail.com>>
Cc: MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>
Subject: [EXTERNAL] Re: [mapserver-users] Mapserver 7+oracle - wfs getFeature with filter on numeric field
Resent-From: Michael Smith <michael.smith at usace.army.mil<mailto:michael.smith at usace.army.mil>>

Precision: we are using MS7.1
Removing matchcase part makes oracle, and postgis, crash.
I have this error:

<ows:ExceptionReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance<http://www.google.com/url?q=http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance&sa=D&sntz=1&usg=AFQjCNFERp6A_kcvqihMCKJ7EHX8O14vIA>" xmlns:ows="http://www.opengis.net/ows<http://www.google.com/url?q=http%3A%2F%2Fwww.opengis.net%2Fows&sa=D&sntz=1&usg=AFQjCNE9_q7eSkcBl4XJimXTw1Zx0EiDow>" version="1.1.0" language="en-US"xsi:schemaLocation="http://www.opengis.net/ows< /a><http://www.google.com/url?q=http%3A%2F%2Fwww.opengis.net%2Fows&sa=D&sntz=1&usg=AFQjCNE9_q7eSkcBl4XJimXTw1Zx0EiDow>http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd<http://www.google.com/url?q=http%3A%2F%2Fschemas.opengis.net%2Fows%2F1.0.0%2FowsExceptionReport.xsd&sa=D&sntz=1&usg=AFQjCNGmnK6iSrh-cSWEtM2VV17uuSbVNA>">
<ows:Exception exceptionCode="NoApplicableCode" locator="mapserv">
<ows:ExceptionText>
msWFSGetFeature(): WFS server error. FLTApplyFilterToLayer() failed msOracleSpatialLayerWhichShapes(): OracleSpatial error. Check your data statement and server logs
</ows:ExceptionText>


The problem might be the decimals?
Here is the request
<wfs:Query typeName="feature:SMDVDP_STAT_METE" srsName="EPSG:32198">
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LONG_STAT</ogc:PropertyName>
<ogc:Literal>-61,8031</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>


thomas bonfort <thomas.bonfort at gmail.com<mailto:thomas.bonfort at gmail.com>>

2015-05-13 05:40

A
        Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>
cc
        MapserverList OSGEO <mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>>
Objet
        Re: [mapserver-users] Mapserver 7+oracle - wfs getFeature with filter on numeric field











can you try the same request without the "matchCase" part and report
back please?

On 12 May 2015 at 18:11,  <Steve.Toutant at inspq.qc.ca<mailto:Steve.Toutant at inspq.qc.ca>> wrote:
> I have a problem using a FILTER in a wfs getFeature request on an oracle DB
> with MS7
> When I launch a getFeature request with a Filter on a numeric field it
> doesn't work,
> <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"><ogc:PropertyIsEqualTo
> matchCase="false"><ogc:PropertyName>LONG_STAT</ogc:PropertyName><ogc:Literal>-61</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>
> here is the error we get in the browser
> <ows:Exception exceptionCode="NoApplicableCode" locator="mapserv">
>    <ows:ExceptionText>msWFSGetFeature(): WFS server error.
> FLTApplyFilterToLayer() failed
> msOracleSpatialLayerWhichShapes(): OracleSpatial error. Check your data
> statement and server logs</ows:ExceptionText>
>
> from mapserver logs
> [Tue May 12 11:59:10 2015].177992 msOracleSpatialLayerTranslateFilter.
> String:  ([LONG_STAT] =*-61)
>
> LONG_STAT is a NUMBER in the DB
> DescribefeatureType returns
>           <element name="NO_STAT_CLIM" minOccurs="0" type="string"/>
>          <element name="NO_STAT_FADQ" minOccurs="0" type="string"/>
>          <element name="NOM_STAT" minOccurs="0" type="string"/>
>          <element name="LATI_STAT" minOccurs="0" type="string"/>
>          <element name="LONG_STAT" minOccurs="0" type="string"/>
>          <element name="ALTI_STAT" minOccurs="0" type="string"/>
>
> I tried to add "gml_types" "auto" in the mapfile, but it still returns
> string as data type
> I tried "gml_LONG_STAT_type" = "Integer" in the mapfile, describeFeatureType
> returns "<element name="LONG_STAT" minOccurs="0" type="double"/> " but I
> still get an error in getFeature
>
> I'm using CONNECTIONTYPE oraclespatial in the mapfile
>
> I can provide more information....
>
> Is it a known issue or can I do something about that?
>
> Thank you!
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org<mailto:mapserver-users at lists.osgeo.org>
> http://lists.osgeo.org/mailman/listinfo/mapserver-users





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20150514/94e2549a/attachment.htm>


More information about the MapServer-users mailing list