BAG WMS GetFeatureInfo struikelt over panden

Als ik vanuit Openlayers een GetFeatureInfo request maak, dan struikelt de server op de laag “pand”. Voorbeeld URL:
https://geodata.nationaalgeoregister.nl/bag/wms/v1_1?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&INFO_FORMAT=application%2Fjson&I=50&J=50&CRS=EPSG%3A28992&STYLES=&WIDTH=101&HEIGHT=101&BBOX=126284.83382950997%2C546570.6620912795%2C126295.438829644%2C546581.2670914136

Het antwoord dat terugkomt:
{
“type”: “FeatureCollection”,
“name”: “ligplaats”,
“crs”: { “type”: “name”, “properties”: { “name”: “urn:ogc:def:crs:EPSG::28992” } },
“features”: [

]
}
Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' encoding="UTF-8" standalone="no" ?> msOGRWriteFromQuery(): General error message. OGR OGR_DS_CreateLayer failed for layer 'pand' with driver 'GEOJSON'.

De GetFeatureInfo url word door OpenLayers uit de Capabilities xml gehaald, dus of er is iets fout aan de achterkant, of er staat een verkeerde url in de Capabilities, dat kan ik hiervandaan niet beoordelen. Alle andere GetFeatureInfo requests die ik heb geprobeerd (Adressen, Kadastrale kaart, Gewaspercelen, noem maar op: allemaal WMS.GetFeatureInfo) gaan goed.

Iemand anders ook last van? Of ligt het stiekem toch aan mijn implementatie?

Ben ik dan de enige die hier last van heeft? Lijkt me toch stug, want ik krijg echt een server-error terug (nog steeds):

<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<ServiceExceptionReport version="1.3.0" xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">
<ServiceException>
msOGRWriteFromQuery(): General error message. OGR OGR_DS_CreateLayer failed for layer &#39;pand&#39; with driver &#39;GEOJSON&#39;.
</ServiceException>
</ServiceExceptionReport>

Dit heb ik weleens vaker gezien. Volgens mij ligt dit aan het opgevraagde formaat (INFO_FORMAT=application/json). Denk MapServer-specifiek. Ging bij GeoServer wel goed voorheen.
Als ik GML opvraag met zelfde query, deze wordt ook zo gegenereerd met GML INFO_FORMAT vanuit OpenLayers (ok 2.12), gaat wel goed:

https://geodata.nationaalgeoregister.nl/bag/wms/v1_1?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&INFO_FORMAT=application%2Fvnd.ogc.gml&I=50&J=50&CRS=EPSG%3A28992&STYLES=&WIDTH=101&HEIGHT=101&BBOX=126284.83382950997%2C546570.6620912795%2C126295.438829644%2C546581.2670914136

<?xml version="1.0" encoding="UTF-8"?>

<msGMLOutput 
	 xmlns:gml="http://www.opengis.net/gml"
	 xmlns:xlink="http://www.w3.org/1999/xlink"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<pand_layer>
	<gml:name>pand</gml:name>
		<pand_feature>
			<gml:boundedBy>
				<gml:Box srsName="EPSG:28992">
					<gml:coordinates>126280.544000,546569.397000 126294.215000,546582.395000</gml:coordinates>
				</gml:Box>
			</gml:boundedBy>
			<gid>5284019</gid>
			<identificatie>0462100000001715</identificatie>
			<bouwjaar>1995</bouwjaar>
			<status>Pand in gebruik</status>
			<gebruiksdoel>woonfunctie</gebruiksdoel>
			<oppervlakte_min>154</oppervlakte_min>
			<oppervlakte_max>154</oppervlakte_max>
			<aantal_verblijfsobjecten>1</aantal_verblijfsobjecten>
			<rdf_seealso>http://bag.basisregistraties.overheid.nl/bag/id/pand/0462100000001715</rdf_seealso>
		</pand_feature>
	</pand_layer>
	<woonplaats_layer>
	<gml:name>woonplaats</gml:name>
		<woonplaats_feature>
			<gml:boundedBy>
				<gml:Box srsName="EPSG:28992">
					<gml:coordinates>124508.760000,544814.290000 131234.909000,549611.073000</gml:coordinates>
				</gml:Box>
			</gml:boundedBy>
			<gid>2464</gid>
			<identificatie>1488</identificatie>
			<status>Woonplaats aangewezen</status>
			<woonplaats>Hippolytushoef</woonplaats>
			<rdf_seealso>http://bag.basisregistraties.overheid.nl/bag/id/woonplaats/1488</rdf_seealso>
		</woonplaats_feature>
	</woonplaats_layer>
</msGMLOutput>

Hmmm. Volgens de huidige Capabilities moet ie dat gewoon aan kunnen:

<GetFeatureInfo>
<Format>application/vnd.ogc.gml</Format>
<Format>text/html</Format>
<Format>text/plain</Format>
<Format>application/json</Format>
<Format>application/json; subtype=geojson</Format>
<Format>text/xml</Format>
<Format>text/xml; subtype=gml/3.1.1</Format>

En als je de woonplaatsen bevraagt, doet ie 't ook goed:

https://geodata.nationaalgeoregister.nl/bag/wms/v1_1?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&INFO_FORMAT=application%2Fjson&I=50&J=50&CRS=EPSG%3A28992&STYLES=&WIDTH=101&HEIGHT=101&BBOX=111992.00000001909%2C492030.4000000191%2C155430.07999998098%2C535468.479999981

Het lijkt alleen bij de combinatie pand en json/geojson voor te komen…

@sbjager dat gaat bij JSON niet goed inderdaad (zoals @Just_OSGeo aangeeft). We hebben wel een mogelijke oplossing in beeld (dat zal niet direct op de hele korte termijn kunnen worden doorgevoerd). Bij het opgeven van 1 featuretype in het request gaat het overigens wel goed:

https://geodata.nationaalgeoregister.nl/bag/wms/v1_1?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&LAYERS=ligplaats%2Cpand%2Cstandplaats%2Cwoonplaats&INFO_FORMAT=application%2Fjson&I=50&J=50&CRS=EPSG%3A28992&STYLES=&WIDTH=101&HEIGHT=101&BBOX=111992.00000001909%2C492030.4000000191%2C155430.07999998098%2C535468.479999981

Ha ja, als je bij Query_Layers alleen pand invult doet ie het wel! Zodra je er een andere (ligplaats bijvoorbeeld) bij zet, krijg je de foutmelding.

En als je ver genoeg uitzoomd, zodat alleen de woonplaats-laag word weergegeven, dan gaat het ook goed (zoals in de link die jij ook aangeeft). Blijkbaar filtert de server dan al direct de pand-laag er uit, nog voordat ie bevraagd is. Lijkt er dus op dat het probleem optreed bij het aanmaken van de json van de pandlaag, en dan alleen in combinatie met andere lagen. Apart.

Ik zal eens kijken of ik iets met Openlayers kan doen om dit af te vangen voorlopig, totdat het gefikst is.

1 like

Dit topic is 180 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.