<!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>