Простой ol.format.ogc.filter.bbox работает без проблем с использованием Geoserver, и я могу разобрать выходной XML следующим образом:.WFS GetFeature выход из ArcGIS не может быть проанализирован с любым ol.format *
features = new ol.format.GML3().readFeatures(result);
Однако; при использовании того же фильтра с ArcGIS вывод xml не может быть проанализирован. Результаты, возвращаемые сервером карты, верны, но приведенный выше код анализирует только первую возвращаемую функцию. Я пробовал использовать новый ol.format.GML2, который анализирует нужное количество функций, но без геометрии, поэтому я думаю, что это не так. На выходе xmls есть явная разница (см. Ниже).
Как я могу проанализировать второй xml (возвращенный ArcGIS) с помощью OpenLayers 3? Есть ли способ изменить вывод xml в 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&version=1.1.0&request=DescribeFeatureType&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>
Не работает. Он возвращает только одну функцию, поэтому тот же результат, что и ol.format.GML3 – Leandro
Попробуйте с мастером, я получаю 2 функции назад. Какую версию ты используешь? – bartvde
Я использую v3.17.1, я могу попробовать с v3.18.2 – Leandro