[mapserver-users] Strange Behaviour with getFeature using POST method and more than one typename

David Alda Fernandez de Lezea dalda at ikt.es
Thu Apr 8 07:57:47 PDT 2010


Hi list,

I'm having a strange behaviour when receiving data from getFeature request. I prepare a request that is intended to mark some parcels from two different layers (these layers are stored in Oracle Spatial). The request looks like:

<?xml version="1.0" ?>
<wfs:GetFeature service="WFS" version="1.1.0" outputFormat="text/xml; subtype=gml/3.1.1" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs ../wfs/1.1.0/WFS.xsd">
<wfs:Query typeName="RecintosSigpac">
<ogc:Filter>
<ogc:Or>
<ogc:And>
<PropertyIsEqualTo><PropertyName>PROVINCIA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>MUNICIPIO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>POLIGONO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>PARCELA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>RECINTO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
</ogc:And>
<ogc:And>
<PropertyIsEqualTo><PropertyName>PROVINCIA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>MUNICIPIO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>POLIGONO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>PARCELA</PropertyName><Literal>20</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>RECINTO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
</ogc:And>
<ogc:And>
<PropertyIsEqualTo><PropertyName>PROVINCIA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>MUNICIPIO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>POLIGONO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>PARCELA</PropertyName><Literal>24</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>RECINTO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
</ogc:And>
</ogc:Or>
</ogc:Filter>
</wfs:Query>
<wfs:Query typeName="ParcelasSigpac">
<ogc:Filter>
<ogc:Or>
<ogc:And>
<PropertyIsEqualTo><PropertyName>PROVINCIA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>MUNICIPIO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>POLIGONO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>PARCELA</PropertyName><Literal>29</Literal></PropertyIsEqualTo>
</ogc:And>
<ogc:And>
<PropertyIsEqualTo><PropertyName>PROVINCIA</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>MUNICIPIO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>POLIGONO</PropertyName><Literal>1</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo><PropertyName>PARCELA</PropertyName><Literal>5</Literal></PropertyIsEqualTo>
</ogc:And>
</ogc:Or>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

All the features that I want to mark using these filters are unique rows in Oracle Spatial. Using my Ajax app I get the following response:

<?xml version='1.0' encoding="ISO-8859-1" ?>
<wfs:FeatureCollection
   xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
   xmlns:gml="http://www.opengis.net/gml"
   xmlns:wfs="http://www.opengis.net/wfs"
   xmlns:ogc="http://www.opengis.net/ogc"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://192.168.1.65/cgi-bin/mapserv.exe?map=../htdocs/MFD/ejemplo_wfs.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=RecintosSigpac,ParcelasSigpac&OUTPUTFORMAT=text/xml; subtype=gml/3.1.1  http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
      <gml:boundedBy>
      	<gml:Envelope srsName="EPSG:23030">
      		<gml:lowerCorner>538881.736860 4744342.676060</gml:lowerCorner>
      		<gml:upperCorner>539514.702532 4744971.618431</gml:upperCorner>
      	</gml:Envelope>
      </gml:boundedBy>
    <gml:featureMember>
      <ms:RecintosSigpac gml:id="RecintosSigpac.752">
        <gml:boundedBy>
        	<gml:Envelope srsName="EPSG:23030">
        		<gml:lowerCorner>539098.554563 4744632.941135</gml:lowerCorner>
        		<gml:upperCorner>539191.352464 4744726.952445</gml:upperCorner>
        	</gml:Envelope>
        </gml:boundedBy>
        <ms:msGeometry>
          <gml:Polygon srsName="EPSG:23030">
            <gml:exterior>
              <gml:LinearRing>
                <gml:posList srsDimension="2">539146.378383 4744724.433931 539145.235158 4744724.343655 539141.209291 4744724.134593 539098.862296 4744721.948469 539098.790865 4744711.615815 539098.554563 4744677.257422 539100.133554 4744665.742677 539101.989421 4744645.274892 539102.338824 4744636.815604 539147.216698 4744634.836696 539183.793353 4744632.941135 539191.352464 4744725.909256 539176.751878 4744726.952445 539160.884500 4744725.549674 539146.378383 4744724.433931 </gml:posList>
              </gml:LinearRing>
            </gml:exterior>
          </gml:Polygon>
        </ms:msGeometry>
      </ms:RecintosSigpac>
    </gml:featureMember>
    <gml:featureMember>
      <ms:RecintosSigpac gml:id="RecintosSigpac.752">
        <gml:boundedBy>
        	<gml:Envelope srsName="EPSG:23030">
        		<gml:lowerCorner>539098.554563 4744632.941135</gml:lowerCorner>
        		<gml:upperCorner>539191.352464 4744726.952445</gml:upperCorner>
        	</gml:Envelope>
        </gml:boundedBy>
        <ms:msGeometry>
          <gml:Polygon srsName="EPSG:23030">
            <gml:exterior>
              <gml:LinearRing>
                <gml:posList srsDimension="2">539146.378383 4744724.433931 539145.235158 4744724.343655 539141.209291 4744724.134593 539098.862296 4744721.948469 539098.790865 4744711.615815 539098.554563 4744677.257422 539100.133554 4744665.742677 539101.989421 4744645.274892 539102.338824 4744636.815604 539147.216698 4744634.836696 539183.793353 4744632.941135 539191.352464 4744725.909256 539176.751878 4744726.952445 539160.884500 4744725.549674 539146.378383 4744724.433931 </gml:posList>
              </gml:LinearRing>
            </gml:exterior>
          </gml:Polygon>
        </ms:msGeometry>
      </ms:RecintosSigpac>
    </gml:featureMember>
    <gml:featureMember>
      <ms:RecintosSigpac gml:id="RecintosSigpac.780">
        <gml:boundedBy>
        	<gml:Envelope srsName="EPSG:23030">
        		<gml:lowerCorner>539140.476604 4744723.079992</gml:lowerCorner>
        		<gml:upperCorner>539239.310392 4744825.870297</gml:upperCorner>
        	</gml:Envelope>
        </gml:boundedBy>
        <ms:msGeometry>
          <gml:Polygon srsName="EPSG:23030">
            <gml:exterior>
              <gml:LinearRing>
                <gml:posList srsDimension="2">539210.760749 4744825.870297 539171.605414 4744812.932158 539154.900802 4744810.658958 539151.793893 4744810.241026 539150.884920 4744803.887571 539149.435868 4744793.751862 539144.504835 4744774.483491 539140.476604 4744745.790917 539141.570279 4744729.302770 539144.916268 4744728.632982 539155.283284 4744730.181283 539174.221816 4744732.271720 539213.767798 4744726.008999 539214.713582 4744725.893379 539232.282920 4744723.079992 539239.310392 4744781.827717 539208.870828 4744783.739315 539209.136859 4744799.555691 539209.910262 4744816.473342 539210.760749 4744825.870297 </gml:posList>
              </gml:LinearRing>
            </gml:exterior>
          </gml:Polygon>
        </ms:msGeometry>
      </ms:RecintosSigpac>
    </gml:featureMember>
    <gml:featureMember>
      <ms:ParcelasSigpac gml:id="ParcelasSigpac.432">
        <gml:boundedBy>
        	<gml:Envelope srsName="EPSG:23030">
        		<gml:lowerCorner>539350.511939 4744673.714232</gml:lowerCorner>
        		<gml:upperCorner>539514.702532 4744971.618431</gml:upperCorner>
        	</gml:Envelope>
        </gml:boundedBy>
        <ms:msGeometry>
          <gml:Polygon srsName="EPSG:23030">
            <gml:exterior>
              <gml:LinearRing>
                <gml:posList srsDimension="2">539491.015879 4744792.082294 539475.782392 4744815.126130 539474.642472 4744816.850943 539474.056299 4744817.555015 539460.451809 4744853.928462 539454.143305 4744873.207102 539440.629731 4744926.019638 539430.716698 4744943.313585 539413.952425 4744959.898107 539411.273518 4744964.881346 539407.646330 4744971.618431 539406.476289 4744971.434873 539406.366823 4744971.415630 539405.504687 4744971.280377 539358.907641 4744964.079030 539357.908645 4744963.924384 539357.819670 4744963.914567 539352.263608 4744963.054354 539351.935157 4744963.005934 539350.511939 4744962.783705 539352.673948 4744946.385464 539357.193238 4744935.734641 539371.562447 4744905.629881 539384.165455 4744865.843680 539397.369264 4744840.768116 539413.956573 4744791.742981 539415.753731 4744775.705698 539422.336088 4744776.767313 539431.436383 4744778.243618 539450.177203 4744778.946742 539457.925869 4744776.068340 539458.492779 4744775.140756 539466.401928 4744762.191662 539488.212759 4744674.250571 539488.822495 4744674.216836 539498.564357 4744673.714232 539514.702532 4744675.677836 539513.744624 4744680.289272 539490.550025 4744792.107546 539491.015879 4744792.082294 </gml:posList>
              </gml:LinearRing>
            </gml:exterior>
          </gml:Polygon>
        </ms:msGeometry>
      </ms:ParcelasSigpac>
    </gml:featureMember>
    <gml:featureMember>
      <ms:ParcelasSigpac gml:id="ParcelasSigpac.470">
        <gml:boundedBy>
        	<gml:Envelope srsName="EPSG:23030">
        		<gml:lowerCorner>538882.248073 4744342.676060</gml:lowerCorner>
        		<gml:upperCorner>539029.527193 4744453.228030</gml:upperCorner>
        	</gml:Envelope>
        </gml:boundedBy>
        <ms:msGeometry>
          <gml:Polygon srsName="EPSG:23030">
            <gml:exterior>
              <gml:LinearRing>
                <gml:posList srsDimension="2">539029.513178 4744416.148626 539023.438691 4744440.204136 538915.364222 4744450.585437 538882.248073 4744453.228030 538882.331310 4744453.042333 538923.249964 4744365.347156 538933.462428 4744343.465189 538933.829894 4744342.676060 538941.133211 4744351.979153 538947.118409 4744358.193740 538960.350385 4744369.168664 538968.075321 4744372.945028 538971.325354 4744383.202584 539024.659247 4744412.165068 539029.527193 4744416.092856 539029.513178 4744416.148626 </gml:posList>
              </gml:LinearRing>
            </gml:exterior>
          </gml:Polygon>
        </ms:msGeometry>
      </ms:ParcelasSigpac>
    </gml:featureMember>
</wfs:FeatureCollection>

The thing is that I get two features with the same 'id' (the two first features -> id 752) and same geodata and one of the requested parcels disappear (id-> 759). In DB table the id's are:

TABLE -> RecintosSigpac

Id  | PROVINCIA | MUNICIPIO | POLIGONO | PARCELA | RECINTO
----------------------------------------------------------
752 |	    1     |	    1     |    1     |	 20    |	1
----------------------------------------------------------
759 |	    1     |	    1     |    1     |	 24    |	1
----------------------------------------------------------
780 |	    1     |	    1     |    1     |	  1    |	1
----------------------------------------------------------
...

TABLE -> ParcelasSigpac

Id  | PROVINCIA | MUNICIPIO | POLIGONO | PARCELA
------------------------------------------------
432 |	    1     |	    1     |    1     |	 29  
------------------------------------------------
470 |	    1     |	    1     |    1     |	  5   
------------------------------------------------
...

In other tests I've done it happens the same with the table ParcelasSigpac (the same case but changing roles), so maybe it's something I make wrong with the filters, or there's something special that I've to configure in the DB table.

Can someone, please, help me? It's really important because it's causing some troubles. 

Thanks.
 
Un saludo,
 
··················································································

David Alda Fernández de Lezea
Lurralde eta Biodibertsitate Saila / Dpto. de Territorio y Biodiversidad
 
IKT
Granja Modelo s/n · 01192 · Arkaute (Araba)

··················································································
Tlfnos.: 945-00-32-95                         Fax: 945-00.32.90
··················································································
email: dalda at ikt.es                                web: www.ikt.es
··················································································



More information about the MapServer-users mailing list