Я пытаюсь проанализировать объект GML из службы WFS 2.0. Вот что я сделал до сих пор:
var parser = new ol.format.GML32({ featureNS: 'http://data.gov.dk/schemas/dagi/2/gml3sfp', featureType: 'Kommuneinddeling' }); var feature = parser.readFeatures(gmlString); // After this step feature is empty
Ответ GML подобен этому
<?xml version="1.0" encoding="UTF-8"?> <wfs:FeatureCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dagi="http://data.gov.dk/schemas/dagi/2/gml3sfp" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:adr="http://data.gov.dk/schemas/adresse/0/gml3sfp" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:fes="http://www.opengis.net/fes/2.0" xsi:schemaLocation="http://data.gov.dk/schemas/dagi/2/gml3sfp http://schemas.datafordeler.dk/schemas/1.0.0/DAGI_2000MULTIGEOM_GMLSFP/dagi_gml3sfp.xsd http://data.gov.dk/schemas/adresse/0/gml3sfp http://schemas.datafordeler.dk/schemas/1.0.0/DAGI_2000MULTIGEOM_GMLSFP/adresse_gml3sfp.xsd http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd" timeStamp="2020-02-19T03:20:09" numberMatched="1" numberReturned="1"> <wfs:member> <dagi:Kommuneinddeling gml:id="dagi.1700389194"> <dagi:id.namespace>http://data.gov.dk/dagi2000k</dagi:id.namespace> <dagi:id.lokalId>1700389194</dagi:id.lokalId> <dagi:status>vedtaget</dagi:status> <dagi:geometristatus>endelig</dagi:geometristatus> <dagi:virkningFra>2019-08-09T00:00:00.000+02:00</dagi:virkningFra> <dagi:virkningsaktoer>SDFE</dagi:virkningsaktoer> <dagi:forretningshaendelse>DAGIajourføring</dagi:forretningshaendelse> <dagi:registreringFra>2019-08-09T16:10:09.000+02:00</dagi:registreringFra> <dagi:registreringsaktoer>SDFE</dagi:registreringsaktoer> <dagi:forretningsomraade>52.20.20.27</dagi:forretningsomraade> <dagi:forretningsproces>DAGIafledning</dagi:forretningsproces> <dagi:navn>Aarhus</dagi:navn> <dagi:redigeringsret>SDFE</dagi:redigeringsret> <dagi:dataspecifikation>DAGI Objektspecifikation version 2.0</dagi:dataspecifikation> <dagi:landekode>DK</dagi:landekode> <dagi:skala>1:2.000.000</dagi:skala> <dagi:udtraeksdato>2020-02-19T03:20:09</dagi:udtraeksdato> <dagi:geometri> <gml:MultiSurface srsName="urn:ogc:def:crs:EPSG::25832" gml:id="LOCAL_ID_0"> <gml:surfaceMember> <gml:Polygon srsName="urn:ogc:def:crs:EPSG::25832" gml:id="LOCAL_ID_1"> <gml:exterior> <gml:LinearRing> .... </gml:LinearRing> </gml:exterior> </gml:Polygon> </gml:surfaceMember> </gml:MultiSurface> </dagi:geometri> <dagi:kommunekode>0751</dagi:kommunekode> <dagi:LAU1vaerdi>751</dagi:LAU1vaerdi> <dagi:udenforKommuneinddeling>false</dagi:udenforKommuneinddeling> <dagi:regionskode>1082</dagi:regionskode> <dagi:regionsLokalId>1700389101</dagi:regionsLokalId> <dagi:region xlink:href="http://data.gov.dk/dagi2000k#1700389101"/> </dagi:Kommuneinddeling> </wfs:member> </wfs:FeatureCollection>
Насколько я вижу, ответ является объектом GML 3.2.1, так как он имеет тег вместо. После прочтения документа openlayers я вижу, что в нем есть класс GML32 для работы с ответом GML 3.2.1 (по умолчанию в WFS 2.0 используется GML 3.2.1), но приведенный выше код не работает. Я что-то упустил или это ошибка OpenLayers (я использую OpenLayers 6.2.1)?