• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Postcode naar straatnaam met PDOK (nationaal register) om afstanden te berekenen

Status
Niet open voor verdere reacties.

Gijs van de wij

Gebruiker
Lid geworden
5 feb 2008
Berichten
13
Beste mensen,

Voor het omzetten van een postcode naar een straatnaam gebruik ik PDOK
Helaas hebben ze de locatie server aangepast en is mijn kennis te kort om dit te kunnen aanpassen in VBA.:eek:

de code waar get om gaat is:

Code:
With CreateObject("MSXML.DOMDOCUMENT")    'am_2016
        .Async = False
        .Load "http://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=" & Replace(Trim(PostcodeNummerbew), " ", "") & "+" & HuisNummer & " & strict=true"
        strStraat = .SelectSingleNode("//xls:Street").Text
        strPlaats = .SelectSingleNode("//xls:Place[@type='MunicipalitySubdivision']").Text
        strGemeente = .SelectSingleNode("//xls:Place[@type='Municipality']").Text
        strProvincie = .SelectSingleNode("//xls:Place[@type='CountrySubdivision']").Text
    End With

er is een link waarin het eea is uitgelegt alleen dat gaat mij nog te ver.

https://github.com/PDOK/locatieserver/wiki/Zoekvoorbeelden-Locatieserver

Wie kan mij helpen dit stukje aan te passen?

Alvast bedankt
Bekijk bijlage afstanden.xlsb
 
En wat lukt er niet? de URL moet nu zoiets worden:

Code:
https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?wt=xml&q=<postcode> <huisnr>

en het antwoord gebruikt tegenwoordig nederlandse termen ipv engelse, maar dat is volgens mij alles?
 
Beste Wampier,

Dank voor je reactie.
De URL heb ik aangepast dit lijkt nu goed te staan.
Ik weet alleen niet hoe ik de straatnaam eruit moet krijgen.

Code:
With CreateObject("MSXML.DOMDOCUMENT")    'am_2016
        .Async = False
        .Load "https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?wt=xml&q=" & Replace(Trim(PostcodeNummerbew), " ", "") & " " & HuisNummer
        strStraat = .SelectSingleNode("straatnaam").Text '[COLOR="#FF0000"]Dit gedeelte snap ik niet wat ik hier moet aapassen om het werkend te krijgen
[/COLOR]
    End With
 
De nodes zitten iets anders in elkaar.. Het makkelijkste is vaak gewoon even de URL in een browser testen en zien wat je terug krijgt.

Code:
strStraat = .SelectSingleNode("//doc/str[@name='straatnaam']").Text()
 
Misschien zijn er anderen in dit forum die een soortgelijke vraag hebben en benieuwd zijn wat werkt en hoe.
 
Hallo SNB

Hierbij dan nog het werkende voorbeeld met wat uitleg voor zover ik het begrepen heb :rolleyes:
 

Bijlagen

  • afstanden werkend.xlsb
    129,1 KB · Weergaven: 95
Overigens is er, als je heel veel berekeningen wil maken wel een manier om dit te doen direct via google API's. Google API's kunnen WEL omgaan met postcodes. Je hebt dat wel een stuk meer werk om het draaiend te krijgen, maar via de API kun je honderden afstanden tegelijk laten berekenen. Voor een hoop toepassingen is het echter wel enorme overkill en werken kleinschalige oplossingen zoals deze prima.
 
Dank voor deze opmerking
API's daar ben ik niet in thuis en voor mij is dit inderdaad voldoende.
 
Snuffel maar eens rond in de GIS wereld.. dan zijn er nog heel veel leuke dingen.
Wordt heel veel met Python gewerkt iig op de WUR.
Jij blijft uiteraard bij VBA.
 
Plaats jouw Pythoncode dan eens die je voor Gijs' probleem gebruikt.
 
Zal ik mijn zoon moeten vragen die is de GIS man....
Het was een tip om daar eens rond te kijken, anders had ik de code er wel meteen bijgezet... als voorbeeld van Python.
 
VBA gebruik ik inderdaad omdat dit in office gebruikt wordt.
Maar in het verre verleden heb ik ook wel met pascal en C gewerkt (School opdrachten)
Kan je Python dan ook gebruiken in combinatie met Excel?
Je maakt mij wel nieuwsgierig :d
 
@ Route99 & Wampier thx voor de linkjes

@Alphamax Niet gehinderd door enige kennis kom ik knippen en plakken een heel eind :d
Ik dacht dat bij google maps de complete website inlaad en dan het stukje eruit haalde wat je nodig heb.
Weer wat geleerd
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan