2016-09-07 1 views
0

A ol.format.ogc.filter.bbox simples travaux sans problème à l'aide Geoserver, et je peux analyser le xml de sortie comme suit:.WFS GetFeature sortie ArcGIS ne peut pas être analysé avec un ol.format *

features = new ol.format.GML3().readFeatures(result); 

Cependant; Lorsque vous utilisez le même filtre avec ArcGIS, le fichier XML de sortie ne peut pas être analysé. Les résultats renvoyés par le serveur de carte sont corrects, mais le code ci-dessus n'analyse que la première fonctionnalité renvoyée. J'ai essayé d'utiliser le nouveau ol.format.GML2 qui analyse la bonne quantité de fonctionnalités mais sans géométrie, donc je pense que ce n'est pas le cas. Il y a une nette différence dans les xml de sortie (voir ci-dessous).

Comment puis-je analyser le second fichier XML (renvoyé par ArcGIS) à l'aide d'OpenLayers 3? Existe-t-il un moyen de modifier le fichier XML de sortie dans ArcGIS?

Geoserver:

<?xml version="1.0" encoding="UTF-8"?> 
<wfs:FeatureCollection numberOfFeatures="2" timeStamp="2016-09-02T15:19:25.157Z" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:ows="http://www.opengis.net/ows" xmlns:rkms="http://rkms" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://mapserver/geoserver/wfs?service=WFS&amp;version=1.1.0&amp;request=DescribeFeatureType&amp;typeName=rkms%3AMyLayer http://www.opengis.net/wfs http://mapserver/geoserver/schemas/wfs/1.1.0/wfs.xsd"> 
    <gml:boundedBy> 
     <gml:Envelope srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3857"> 
      <gml:lowerCorner>6290152.654765377 2551363.9791194764</gml:lowerCorner> 
      <gml:upperCorner>6290408.655102356 2551457.2361871097</gml:upperCorner> 
     </gml:Envelope> 
    </gml:boundedBy> 
    <gml:featureMembers> 
     <rkms:MyLayer gml:id="MyLayer.4727"> 
      <gml:boundedBy> 
       <gml:Envelope srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3857"> 
        <gml:lowerCorner>6290152.654765377 2551363.9791194764</gml:lowerCorner> 
        <gml:upperCorner>6290152.654765377 2551363.9791194764</gml:upperCorner> 
       </gml:Envelope> 
      </gml:boundedBy> 
      <rkms:fid>6319.0</rkms:fid> 
      <rkms:uwi>FAHUD WDW-5H1</rkms:uwi> 
      <rkms:display_class>General#0x0048</rkms:display_class> 
      <rkms:label>FAHUD WDW-5H1</rkms:label> 
      <rkms:the_geom> 
       <gml:Point srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3857"> 
        <gml:pos>6290152.654765377 2551363.9791194764</gml:pos> 
       </gml:Point> 
      </rkms:the_geom> 
      <rkms:well_status>completed</rkms:well_status> 
      <rkms:show_type>unknown</rkms:show_type> 
     </rkms:MyLayer> 
     <rkms:MyLayer gml:id="MyLayer.21732"> 
      <gml:boundedBy> 
       <gml:Envelope srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3857"> 
        <gml:lowerCorner>6290408.655102356 2551457.2361871097</gml:lowerCorner> 
        <gml:upperCorner>6290408.655102356 2551457.2361871097</gml:upperCorner> 
       </gml:Envelope> 
      </gml:boundedBy> 
      <rkms:fid>23325.0</rkms:fid> 
      <rkms:uwi>FAHUD WDW-7H1</rkms:uwi> 
      <rkms:display_class>General#0x0048</rkms:display_class> 
      <rkms:label>FAHUD WDW-7H1</rkms:label> 
      <rkms:the_geom> 
       <gml:Point srsDimension="2" srsName="http://www.opengis.net/gml/srs/epsg.xml#3857"> 
        <gml:pos>6290408.655102356 2551457.2361871097</gml:pos> 
       </gml:Point> 
      </rkms:the_geom> 
      <rkms:well_status>producing</rkms:well_status> 
      <rkms:show_type>unknown</rkms:show_type> 
     </rkms:MyLayer> 
    </gml:featureMembers> 

ArcGIS:

<?xml version="1.0" encoding="UTF-8"?> 
<wfs:FeatureCollection xmlns:MyLayer="http://mapserver/arcgis/services/MyLayer/MapServer/WFSServer" xmlns:gml="http://www.opengis.net/gml" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mapserver/arcgis/services/MyLayer/MapServer/WFSServer http://mapserver/arcgis/services/MyLayer/MapServer/WFSServer?request=DescribeFeatureType%26version=1.1.0%26typename=WellHole http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"> 
    <gml:boundedBy> 
     <gml:Envelope srsName="EPSG:3857"> 
      <gml:lowerCorner>6280561.8275626749 2548148.676770444</gml:lowerCorner> 
      <gml:upperCorner>6289533.3190469407 2559799.8122104518</gml:upperCorner> 
     </gml:Envelope> 
    </gml:boundedBy> 
    <gml:featureMember> 
     <MyLayer:WellHole gml:id="F662__369"> 
      <MyLayer:OBJECTID>369</MyLayer:OBJECTID> 
      <MyLayer:Well_Number>0</MyLayer:Well_Number> 
      <MyLayer:Hole_Number>0</MyLayer:Hole_Number> 
      <MyLayer:SHAPE> 
       <gml:Point> 
        <gml:pos>6288892.4079840938 2550358.0037752441</gml:pos> 
       </gml:Point> 
      </MyLayer:SHAPE> 
     </MyLayer:WellHole> 
    </gml:featureMember> 
    <gml:featureMember> 
     <MyLayer:WellHole gml:id="F662__400"> 
      <MyLayer:OBJECTID>400</MyLayer:OBJECTID> 
      <MyLayer:Well_Number>0</MyLayer:Well_Number> 
      <MyLayer:Hole_Number>0</MyLayer:Hole_Number> 
      <MyLayer:SHAPE> 
       <gml:Point> 
        <gml:pos>6288797.9203164754 2550567.9331951309</gml:pos> 
       </gml:Point> 
      </MyLayer:SHAPE> 
     </MyLayer:WellHole> 
    </gml:featureMember> 
</wfs:FeatureCollection> 

Répondre

2

Utilisez ol.format.WFS qui devraient fonctionner.

features getting parsed

+0

Cela ne fonctionne pas. Il retourne une seule fonction, donc la même sortie que ol.format.GML3 – Leandro

+0

Essayez avec le maître, j'obtiens 2 caractéristiques en arrière. Quelle version utilisez-vous? – bartvde

+0

J'utilise v3.17.1, je peux essayer avec v3.18.2 – Leandro