<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.2.2">
</HEAD>
<BODY>
Na wat puzzelen, heb ik het voor elkaar.<BR>
In de bijlage een html bestand dat drie open layers lagen produceert:<BR>
- Osm mapnik als achtergrond.<BR>
- Gemeentegrenzen (van <A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs)">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs)</A><BR>
- Woonplaatsgrenzen (van <A HREF="http://geodata.nationaalgeoregister.nl/bagviewer/wfs)">http://geodata.nationaalgeoregister.nl/bagviewer/wfs)</A><BR>
<BR>
Opvallend is, dat de bagviewer laag werkt zonder de outputFormat: 'GML2' toevoeging.<BR>
<BR>
Verdere voorwaarde is wel dat je de proxy-host goed geconfigureerd hebt.<BR>
Zie hiervoor: <A HREF="http://www.techrepublic.com/blog/diy-it-guy/diy-enable-cgi-on-your-apache-server/">http://www.techrepublic.com/blog/diy-it-guy/diy-enable-cgi-on-your-apache-server/</A><BR>
<BR>
Het proxy.cgi script vind je hier: <A HREF="http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi?format=txt">http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi?format=txt</A><BR>
Dit script moet je een klein beetje aan passen, door op regel 18 bij allowedHosts 'geodata.nationaalgeoregister.nl' toe te voegen.<BR>
Als je dat vergeet, krijg je een 'bad gateway' foutmelding.<BR>
<BR>
Houdt er wel rekening dat het even kan duren voor de data geladen is. Met name de woonplaats grenzen.<BR>
Ook vermoed ik, dat door het gebruik van de proxy-host, alle data via jouw server naar de client gaat. Als je een beperkt aantal GB per maand hebt bij je provider, kan dat dus consequenties hebben.<BR>
<BR>
Groeten, Gertjan <BR>
<BR>
<BR>
On Wed, 2013-10-16 at 12:08 +0200, Just van den Broecke wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Ok, welkom in de wondere wereld van WFS en OGC-protocollen :-).
Het voordeel (boven een expliciete API zoals OSM XAPI) is dat je maar 1 
protocol spec (WFS) hoeft te kennen. Op grond van een URL zoals 
geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs moet je alle 
metadata (types etc) kunnen opvragen. Nadeel is dat WFS 
"onhandig"/verbose/redundant in elkaar zit. Meestal 2 stappen om uit te 
vinden welke parameters je nodig hebt:

GetCapabilities:
<A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?service=WFS&request=GetCapabilities&version=1.1.0">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?service=WFS&request=GetCapabilities&version=1.1.0</A>
DescribeFeatureType:
<A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?service=WFS&request=DescribeFeatureType&version=1.1.0">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?service=WFS&request=DescribeFeatureType&version=1.1.0</A>

Vooral uit de laatste haal je (onderaan) dat de laagnaam 
'gemeenten_2012' en het geometrie-veld 'geom' moet zijn (bij jou stond 
'geometrie').

Op grond daarvan heb ik net geprobeerd een OL laag toe te voegen in een 
viewer waar ik net aan werk (<A HREF="http://kadviewer.kademo.nl">http://kadviewer.kademo.nl</A>) en zie dat dit 
werkt:

     new OpenLayers.Layer.Vector("Bestuurlijke Grenzen - Gemeenten (WFS)", {
         strategies: [new OpenLayers.Strategy.BBOX()],
         visibility: false,
         styleMap: new OpenLayers.StyleMap(
                 {'strokeColor': '#222222', 'fillColor': '#eeeeee', 
graphicZIndex: 1, fillOpacity: 0.6}),
         protocol: new OpenLayers.Protocol.WFS({
             version: '1.1.0',
             outputFormat: 'GML2',
             srsName: 'EPSG:28992',
             url: 
<A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs</A>?,
             featureType: "gemeenten_2012",
             featureNS: "<A HREF="http://bestuurlijkegrenzen.geonovum.nl">http://bestuurlijkegrenzen.geonovum.nl</A>",
             geometryName: 'geom'
         })
     })

Gotcha: er zit een al 2 jaar bekend probleem in PDOK (GeoServer) WFS bij 
gebruik van WFS 1.1.0: je krijgt standaard GML 3.1.1 output terug, maar 
daarin zitten 'null' namespaces. Dat weten ze daar ook al 2 jaar, maar 
heeft blijkbaar geen prio. Daarom als je outputFormat='GML2' opgeeft, 
gaat het goed. Je kunt ook version: 1.0.0 (default) opgeven dan krijg je 
standaard GML2 terug. Je kunt zelfs outputFormat=json of zelfs SHAPE-ZIP 
opvragen...Wie volgt dit nog ;-)?

Goed, ja ik ben deze dagen, vaak knarsetandend, met WFS bezig, dus 
"leuk" dit voorbij te zien komen. Overigens kan de 500 error goed met je 
proxy-instelling, nodig bij OpenLayers+WFS, te maken hebben...

groet!

Just



On 16-10-13 09:20, Christ van Willegen wrote:
> 2013/10/16 nouwsfam <<A HREF="mailto:nouwsfam@xs4all.nl">nouwsfam@xs4all.nl</A>>:
>>
>> "NetworkError: 500 Internal Server Error -
>> <A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs</A>"
>>
>> en de foutmelding van de WFS server is nu
>>
>> "Reload the page to get source for:
>> <A HREF="http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs">http://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs</A>"
>
> Dat is niet de foutmelding van de WFS server, maar FireBug toont daar
> deze tekst...
>
> Die 'internal server error' is het probleem, maar dan krijg je ook,
> over het algemeen, _geen_ data terug...
>
> Christ van Willegen
>


</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>