Leandro
Leandro

Reputation: 509

WFS GetFeature output from ArcGIS cannot be parsed with any ol.format.*

A simple ol.format.ogc.filter.bbox works with no problem using Geoserver, and I can parse the output xml as follows:

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

However; when using the same filter with ArcGIS the output xml cannot be parsed. The results returned by the map server are correct, but the code above parses only the first feature returned. I tried using new ol.format.GML2 which parses the right amount of features but with no geometry, so I think it is not the case. There is a clear difference in the output xmls (see below).

How can I parse the second xml (returned by ArcGIS) using OpenLayers 3? Is there a way to change the output xml in 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>

Upvotes: 0

Views: 485

Answers (1)

bartvde
bartvde

Reputation: 2126

Use ol.format.WFS that should work.

features getting parsed

Upvotes: 2

Related Questions