BAG v1_1 WFS wijziging

Beste @rli ,

Voor de BAG hebben wij het hersteld. Dit is nu in test op de volgende URL:
https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1_beta?

groet, Erkan

@EfekE De “id” wordt dan inderdaad toegevoegd als je geen <PropertyName> gebruikt. De “id” zou altijd toegevoegd moeten worden in JSON resultaat.

Het resultaat van deze WFS query bevat geen id:

<GetFeature xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0" outputFormat="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<Query typeName="bag:pand" srsName="EPSG:28992"><PropertyName>aantal_verblijfsobjecten</PropertyName><PropertyName>bouwjaar</PropertyName><PropertyName>gebruiksdoel</PropertyName><PropertyName>identificatie</PropertyName><PropertyName>oppervlakte_max</PropertyName><PropertyName>oppervlakte_min</PropertyName><PropertyName>status</PropertyName><PropertyName>geometrie</PropertyName>
<Filter xmlns="http://www.opengis.net/ogc"><BBOX><PropertyName>geometrie</PropertyName><Envelope xmlns="http://www.opengis.net/gml" srsName="EPSG:28992"><lowerCorner>119547.45750000002 476780.4525</lowerCorner><upperCorner>119550.45750000002 476783.4525</upperCorner></Envelope></BBOX></Filter></Query></GetFeature>

Hoi @rli ,

Wanneer je deze met featureid veld (“fid”) uitbreid dan heeft de output wel het “id” veld.

<GetFeature xmlns="http://www.opengis.net/wfs" service="WFS" version="1.1.0" outputFormat="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
    <Query typeName="bag:pand" srsName="EPSG:28992">
        <PropertyName>aantal_verblijfsobjecten</PropertyName>
        <PropertyName>bouwjaar</PropertyName>
        <PropertyName>gebruiksdoel</PropertyName>
        <PropertyName>identificatie</PropertyName>
        <PropertyName>oppervlakte_max</PropertyName>
        <PropertyName>oppervlakte_min</PropertyName>
        <PropertyName>status</PropertyName>
        <PropertyName>fid</PropertyName>
        <PropertyName>geometrie</PropertyName>
        <Filter xmlns="http://www.opengis.net/ogc">
            <BBOX>
                <PropertyName>geometrie</PropertyName>
                <Envelope xmlns="http://www.opengis.net/gml" srsName="EPSG:28992">
                    <lowerCorner>119547.45750000002 476780.4525</lowerCorner>
                    <upperCorner>119550.45750000002 476783.4525</upperCorner>
                </Envelope>
            </BBOX>
        </Filter>
    </Query>
</GetFeature>

Een vraagje, waarom al die PropertyName velden? Is dat om alleen de “rdf_seealso” veld niet te tonen?

Dat is hoe de applicatie nu werkt, die vraagt de ingestelde properties op.
Het zou niet nodig moeten zijn om “fid” op te geven. De id-property is namelijk geen gewone property en die zie je ook niet binnen de normale properties van JSON resultaat. Id zou altijd in het resultaat moeten zitten,

Ik kan me iets voorstellen bij de redenatie. Maar de property kom terug in de:
https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1_beta?request=describefeaturetype&service=wfs&version=2.0.0&typename=bag:pand

Waarom wordt ie er dan expliciet uitgefilterd door “de” applicatie (neem aan dat dit jullie applicatie betreft)?

<?xml version='1.0' encoding="UTF-8" ?>
<schema
   targetNamespace="http://bag.geonovum.nl" 
   xmlns:bag="http://bag.geonovum.nl" 
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns="http://www.w3.org/2001/XMLSchema"
   xmlns:gml="http://www.opengis.net/gml/3.2"
   elementFormDefault="qualified" version="0.1" >

  <import namespace="http://www.opengis.net/gml/3.2"
          schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd" />

  <element name="pand" 
           type="bag:pandType" 
           substitutionGroup="gml:AbstractFeature" />

  <complexType name="pandType">
    <complexContent>
      <extension base="gml:AbstractFeatureType">
        <sequence>
          <element name="geometrie" type="gml:GeometryPropertyType" minOccurs="0" maxOccurs="1"/>
          <element name="fid" minOccurs="0" type="string"/>
          <element name="identificatie" minOccurs="0" type="string"/>
          <element name="bouwjaar" minOccurs="0" type="integer"/>
          <element name="status" minOccurs="0" type="string"/>
          <element name="gebruiksdoel" minOccurs="0" type="string"/>
          <element name="oppervlakte_min" minOccurs="0" type="integer"/>
          <element name="oppervlakte_max" minOccurs="0" type="integer"/>
          <element name="aantal_verblijfsobjecten" minOccurs="0" type="integer"/>
          <element name="rdf_seealso" minOccurs="0" type="string"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

</schema>

Misschien is de belangrijkste vraag: als jullie deze property niet weg filteren, werkt het dan. En dan nog graag antwoord op mijn initiele vraag: doen jullie dit om het “rdf_seealso” veld weg te filteren?

Ik krijg het idee dat de lijst met properties afkomstig is van de ‘ouwe’ bag wfs: https://geodata.nationaalgeoregister.nl/bag/wfs?request=describefeaturetype&service=wfs&version=2.0.0&typename=bag:pand

Is deze aanname correct?
Is deze lijst met properties dynamisch of statisch in de applicatie?

De laatste versie van de 1_1_beta werkt voor mijn use case nu zo goed als identiek aan de bestaande 1_1. :+1:

2 likes

Dit is inmiddels opgelost. We geven de lijst met properties niet meer door in het WFS request. Het lijkt me nog steeds wel dat de Id altijd onderdeel moet uitmaken van het resultaat want staat ook niet onder properties in JSON.
@wouter.visscher @Jeroen_PDOK Wanneer gaat de beta versie in productie? Toch wel voor 1 juli hoop ik.
Anders zou ik willen verzoeken om de oude BAG WFS nog niet uit productie te nemen op 1 juli.

@rli daar kan mijn collega @EfekE het meeste over zeggen (die is er vandaag niet dus dat zal volgende week worden).

@EfekE Wanneer gaat de beta versie in productie? Toch wel voor 1 juli hoop ik.
Anders zou ik willen verzoeken om de oude BAG WFS nog niet uit productie te nemen op 1 juli.

Beste Ron,

Het streven is om de beta voor 1 juli in productie te zetten, afhankelijk van de tests door afnemers. We houden jullie op de hoogte.

groet, Erkan

Ok, dat zou mooi zijn. Voor zover ik kan overzien werkt het goed.
Bij Kadaster V4 werkte het al goed en dat is dacht ik ook een MapServer implementatie? Waarom was dat bij BAG dan een probleem?

De werkwijze met FeatureID is nu bij de BAG gelijk aan de DKK gemaakt.

@EfekE De beta BAG 1.1 WFS werkt niet meer: https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1_beta?service=WFS&request=GetCapabilities

Bij de WFS zonder _beta hebben we nog geen featureid.in JSON.
Wanneer wordt dit opgelost?

De …/bag/wfs/v1_1_beta hebben we moeten hernoemen naar /bag/wfs/v1_2-preprod in verband met architectuur richtlijnen/URL strategie. Gezien de v1_1_beta het idee geeft dat dit de ‘voorloper’ is/was van de v1_1 (terwijl dat niet het geval was).

Vandaar dat er nu de …/bag/wfs/v1_2-preprod is, die dan mogelijk (?) naar een v1_2 versie gaat. Ik was in de veronderstelling dat dit al ‘communiceert’ was naar “iedereen” die van het bestaan van de v1_1_beta wist… excuses dat we jou zijn vergeten. Ter volledigheid het is niet het idee dat we deze URL ‘breedt’ verspreiden qua nieuws berichten/enz…

https://geodata.nationaalgeoregister.nl/bag/wfs/v1_2-preprod?service=WFS&request=GetCapabilities

Ik zit al 2 dagen te testen met WFS en POST, maar mijn POSTMAN geeft niets meer terug. Ook onze applicatie niet meer. Dit geldt voor: https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1 en voor https://geodata.nationaalgeoregister.nl/bag/wfs/v1_2-preprod . Ben ik de enige die geen POST meer kan doen?

@geonovation

Post berichten gingen alleen fout in Post requesten zonder querystring.
Dit is nu opgelost.

Hallo iedereen,

Bovenstaande was heel nuttig, ik heb de nieuwe manier aan de praat gekregen. Alleen met CGL_FILTER was het mogelijk om de verblijfsobjecten binnen een pand te bepalen. Is dit nu nog steeds mogelijk? Ik probeerde TYPENAMES=bag:verblijfsobject&featureId=pand.bag:PAND_ID maar die geeft alleen het BAG pand.

Weet iemand hoe ik dit voor elkaar kan krijgen?

Alvast bedankt,

Jelmer Oosthoek

Hoi @jhpoosthoek,

Dit onderwerp is al vaker langsgekomen in andere topics hier op 't forum:
https://geoforum.nl/search?q=cql%20filter

Maar samengevat kan je dit met een ‘standaard’ OGC WFS FILTER parameter oplossen, door bijvoorbeeld het volgende request te doen:

https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getfeature&service=wfs&version=2.0.0&typenames=bag:verblijfsobject&filter=<Filter><PropertyIsEqualTo><PropertyName>pandidentificatie</PropertyName><Literal>0388100000203974</Literal></PropertyIsEqualTo></Filter>

het filter parameter bevat dus een stukje XML/GML waarmee je een specifiek pandidentificatie (of meerdere) kan meegeven en zo de gerelateerde vbo’s bij een pand kan vinden.

<Filter>
    <PropertyIsEqualTo>
        <PropertyName>pandidentificatie</PropertyName>
        <Literal>0388100000203974</Literal>
    </PropertyIsEqualTo>
</Filter>

image

1 like

Dank voor je antwoord, dat was precies wat ik zocht.

1 like