Toon posts:

Reistijden berekenen tussen postcodes

Pagina: 1
Acties:

Vraag


  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
Hi all,

Ik heb een vraagje. Ik wil graag de reistijden per auto berekenen tussen punt A en alle 4 cijferige postcodes in Nederland. Het gaat dan om iets als onderstaande situatie:

Reistijd tussen Jacob Bontiusplaats 9, 1018 LL Amsterdam en 2444, 2445, 2446 etc.

Ik heb al het e.e.a. geprobeerd met Excel i.c.m. de Bing Maps API. Dit werkt in theorie, maar Excel trekt dit niet als ik dit doortrek voor alle postcodes in Nederland.

Iemand een idee hoe ik dit het beste kan doen?

Alle reacties


  • Stalensnuitje
  • Registratie: December 2006
  • Laatst online: 20-03 21:23
Welk punt pakt ie dan als je alleen de vier cijfers van een postcode gebruikt? Geografisch midden ofzo, beetje net als wanneer je in Maps oid alleen de plaatsnaam invult? Gewoon nieuwsgierig, ik heb geen tip voor je ben ik bang :X

  • Coocoocachoo
  • Registratie: Augustus 2007
  • Laatst online: 15:12
Hoe doe je het nu in Excel? Als je een oplossing hebt waar je voor een individuele postcode tevreden mee bent is dat misschien makkelijker aan te passen naar alle postcodes.

  • Jester-NL
  • Registratie: Januari 2003
  • Niet online

Jester-NL

... pakt een botte bijl

Ik denk dat alleen de cijfers van een postcode te weinig informatie zijn.
De ANWB geeft een foutmelding als ik alleen de cijfers opgeef, en als ik een zoekopdracht geef op "postcode gebied 2444", dan geeft Google onder andere: Luxemburg (Stad), Seibersdorf (Neder-Oostenrijk) en Port Macquarie in New South Wales op... En dat geeft dus de nodige verschillen in reistijd.

The sky above the port was the color of television, turned to a dead channel
me @ last.fm


  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
Jester-NL schreef op woensdag 1 februari 2023 @ 15:41:
Ik denk dat alleen de cijfers van een postcode te weinig informatie zijn.
De ANWB geeft een foutmelding als ik alleen de cijfers opgeef, en als ik een zoekopdracht geef op "postcode gebied 2444", dan geeft Google onder andere: Luxemburg (Stad), Seibersdorf (Neder-Oostenrijk) en Port Macquarie in New South Wales op... En dat geeft dus de nodige verschillen in reistijd.
Coocoocachoo schreef op woensdag 1 februari 2023 @ 15:34:
Hoe doe je het nu in Excel? Als je een oplossing hebt waar je voor een individuele postcode tevreden mee bent is dat misschien makkelijker aan te passen naar alle postcodes.
Postcode plus land kan ook, het is allemaal binnen Nederland. Het mag het midden zijn van het postcodegebied, het komt niet op één minuut aan.

Heb dit geprobeerd, dat werkt. Heb het daarna omgebouwd naar een lijst die ik door kan trekken. Dit werkt, maar Excel trekt het niet om die berekening massaal te doen.

https://chandoo.org/wp/di...en-places-excel-maps-api/

[Voor 14% gewijzigd door deathmonkey op 01-02-2023 15:46]


  • Djordjo
  • Registratie: Mei 2007
  • Niet online
deathmonkey schreef op woensdag 1 februari 2023 @ 15:04:
Ik heb al het e.e.a. geprobeerd met Excel i.c.m. de Bing Maps API. Dit werkt in theorie, maar Excel trekt dit niet als ik dit doortrek voor alle postcodes in Nederland.
Waarom zou Excel dit niet trekken? Ik denk eerder dat de API geen zin heeft om 4000 keer een route te berekenen. Je zou op zoek kunnen gaan naar een (betaalde) API die dat wel wil.

Wat wil je hiermee bereiken? Waarom zoveel berekeningen doen voor een relatief onbetrouwbare uitkomst? (sommige postcodegebieden zijn meerdere km2 groot)

  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
Djordjo schreef op woensdag 1 februari 2023 @ 15:47:
[...]

Waarom zou Excel dit niet trekken? Ik denk eerder dat de API geen zin heeft om 4000 keer een route te berekenen. Je zou op zoek kunnen gaan naar een (betaalde) API die dat wel wil.

Wat wil je hiermee bereiken? Waarom zoveel berekeningen doen voor een relatief onbetrouwbare uitkomst? (sommige postcodegebieden zijn meerdere km2 groot)
Ik wil de beste locatie voor klanten a.d.h.v. postcode berekenen.

  • wautah91
  • Registratie: April 2010
  • Laatst online: 14:51
Heb eens voor een projectje de ANWB API uit zitten pluizen.


Eerst dien je de lat/lon op te halen van de postcode dat kan door middel van onderstaande. De APIkey is gewoon die de ANWB zelf ook gebruikt op de website.
Je krijgt een response met lat/lon. Doe dat nog een keer voor het tweede adres.

Dan vul je in de onderstaande url de lat en lon in

code:
1
https://api.anwb.nl/v1/routing?apikey=GttEkIuzzOn4b0sGyPw2F6cLtzd64uUH&locations=52.0892139,4.7451489:52.0856121,4.7455946&transportMode=car&query=route&routeId=&polyline=true&instructions=false&maxAlternatives=2&routeType=fastest&traffic=false&tollInfo=true


Je krijgt een json terug met onder summary de reistijd (duration) in seconden.


Via de PowerQuery editor in Excel moet je dat wel erin krijgen denk ik. Daar heb ik geen ervaring mee

[Voor 5% gewijzigd door wautah91 op 01-02-2023 16:08]

Mijn blog over domoticz, home assistant, Synology en Arduino/ESP8266


  • Djordjo
  • Registratie: Mei 2007
  • Niet online
deathmonkey schreef op woensdag 1 februari 2023 @ 15:57:
Ik wil de beste locatie voor klanten a.d.h.v. postcode berekenen.
De beste locatie voor klanten lijkt mij naast de deur, dus Jacob Bontiusplaats 7 of Jacob Bontiusplaats 11 in jouw voorbeeld.

  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
Djordjo schreef op woensdag 1 februari 2023 @ 16:34:
[...]

De beste locatie voor klanten lijkt mij naast de deur, dus Jacob Bontiusplaats 7 of Jacob Bontiusplaats 11 in jouw voorbeeld.
Bedoel de locatie van een winkel. Er zijn soms klanten die ogenschijnlijk midden tussen twee vestigingen wonen, maar dat de reistijd toch een stuk langer is naar vestiging A als dan naar B. Uiteindelijk wil ik postcodes toebedelen aan bepaalde vestigingen, zodat dit automatisch kan gebeuren. We hebben nooit twee vestigingen in dezelfde plaats, dus is het altijd bij benadering.

  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
wautah91 schreef op woensdag 1 februari 2023 @ 16:06:
Heb eens voor een projectje de ANWB API uit zitten pluizen.


Eerst dien je de lat/lon op te halen van de postcode dat kan door middel van onderstaande. De APIkey is gewoon die de ANWB zelf ook gebruikt op de website.

[...]


Je krijgt een response met lat/lon. Doe dat nog een keer voor het tweede adres.

Dan vul je in de onderstaande url de lat en lon in

code:
1
https://api.anwb.nl/v1/routing?apikey=GttEkIuzzOn4b0sGyPw2F6cLtzd64uUH&locations=52.0892139,4.7451489:52.0856121,4.7455946&transportMode=car&query=route&routeId=&polyline=true&instructions=false&maxAlternatives=2&routeType=fastest&traffic=false&tollInfo=true


Je krijgt een json terug met onder summary de reistijd (duration) in seconden.


Via de PowerQuery editor in Excel moet je dat wel erin krijgen denk ik. Daar heb ik geen ervaring mee
Dank! Ik ook niet maar ga eens uitzoeken of ik daar verder mee kom.

  • Djordjo
  • Registratie: Mei 2007
  • Niet online
Ik weet niet om hoeveel vestigingen het gaat, maar wellicht kun je het grootste gedeelte al handmatig indelen op basis van de eerste twee cijfers van de postcode:


Het restant kun je dan berekenen. Simpelweg kopiëren van iets wat je op internet gevonden hebt gaat vermoedelijk niet werken bij grote aantallen. In Excel zou je met VBA-script aan de slag kunnen gaan, dan wel je requests in batches versturen en afhandelen (zie bijvoorbeeld batch geocoding bij Bing Maps).

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 14:50
Bij een bedrijf waar ik vroeger werkte hadden we ook zoiets, maar dan bedoeld om routes te bepalen voor monteurs die bij klanten langs gingen. Ik denk inderdaad dat als je het als formule in Excel zet en dan probeert door te trekken dat dat heel lang duurt omdat Excel dan al die requests voor elke cel gaat afvuren.

Ik denk inderdaad dat wat @Djordjo voorstelt om het met een VBA script in batches uit te voeren misschien nog wel gaat werken.

Of misschien is https://www.postcodeafstanden.nl/ iets waar je naar kan kijken?

[Voor 12% gewijzigd door urk_forever op 01-02-2023 18:30]

Hail to the king baby!


  • Belindo
  • Registratie: December 2012
  • Laatst online: 07:20

Belindo

▶ ─🔘─────── 15:02

Ik gebruik hiervoor een API van Bing. Heb tijdens het eten Excel even laten crunchen, en de volgende CSV uitgepoept. Let wel; ik heb steeksproefsgewijs de data gechecked, maar lang niet alles. Tevens zijn de afstanden en reistijden op basis van de numerieke postcode, zonder de letters.

https://codeshare.io/LwR7Ap

Edit: afstand is in KM, en reistijd in minuten. De reistijd met traffic is op basis van de situatie op de weg vandaag rond 17:00-18:30

[Voor 17% gewijzigd door Belindo op 01-02-2023 18:33]

Coding in the cold; <brrrrr />


  • deathmonkey
  • Registratie: Oktober 2013
  • Niet online
Belindo schreef op woensdag 1 februari 2023 @ 18:32:
Ik gebruik hiervoor een API van Bing. Heb tijdens het eten Excel even laten crunchen, en de volgende CSV uitgepoept. Let wel; ik heb steeksproefsgewijs de data gechecked, maar lang niet alles. Tevens zijn de afstanden en reistijden op basis van de numerieke postcode, zonder de letters.

https://codeshare.io/LwR7Ap

Edit: afstand is in KM, en reistijd in minuten. De reistijd met traffic is op basis van de situatie op de weg vandaag rond 17:00-18:30
Hoe heb je dit gedaan? Ik moet dit namelijk nog twintig keer doen :D

  • Belindo
  • Registratie: December 2012
  • Laatst online: 07:20

Belindo

▶ ─🔘─────── 15:02

Ik heb een lijst met alle postcode nummers gezocht (kwam van een Geocaching website), deze ingeladen in Power Query in Excel. Via de API van Bing (waar ik een key van heb) een Json.Document(Web.Contents()) functie geladen met de URL met daarin een verwijzing naar de postcode op de rij. Je krijgt dan een JSON object terug die je in Power Query kunt 'expanden' om door de JSON heen te lopen totdat je de gewenste kolommen krijgt. Daarna de data naar een nieuwe tabel geladen en even snel de duration maal 60 gedaan om de seconden om te zetten naar minuten.

Een aantal postcodes gaf een 404 melding van de API, die heb ik eruit gefilterd (vandaar niet alles gevalideerd).

De API van de ANWB werkt op een soortgelijke manier. Echter retourneert deze véél meer rijen omdat het postcode nummer ook nog wordt omgezet naar Postcode+Letter en straatnamen. Één postcode kan dan meerdere rijen retourneren.

Coding in the cold; <brrrrr />


  • grasmanek94
  • Registratie: Juli 2015
  • Laatst online: 09:40
Ik heb voor een bedrijf ook iets dergelijks ooit moeten maken, we hadden alle coördinaten (nederlands coördinatenstelsel) opgehaald vanuit de BAG of iets dergelijk (weet niet meer waar die zijn). Dat was inclusief letters.

Daarna code gemaakt die met Nederlandse coördinaten van postcodes de afstanden tussen postcodes berekend. Aantal kilometers = ~aantal minuten, maal 1.35 voor de zekerheid en het zat redelijk goed voor reistijd (op uitzonderingen na).

Nederlands coördinatenstelsel is denk ik in meters vanaf een nulpunt dat ergens links of rechtsonder NL op de kaarten zit.

Edit: Ik denk dat we dit hebben gebruikt: https://www.kadaster.nl/-/kosteloze-download-bag-2.0-extract (toen was het alleen nog betaald maar genoeg publieke sites die het gratis aanboden....).

Of misschien was het deze: https://www.kadaster.nl/z...gebouwen/inspire-datasets

Maar 100% iets met Kadaster+BAG.

[Voor 22% gewijzigd door grasmanek94 op 03-02-2023 13:49]


  • DJMaze
  • Registratie: Juni 2002
  • Niet online
deathmonkey schreef op woensdag 1 februari 2023 @ 16:46:
Bedoel de locatie van een winkel. Er zijn soms klanten die ogenschijnlijk midden tussen twee vestigingen wonen, maar dat de reistijd toch een stuk langer is naar vestiging A als dan naar B. Uiteindelijk wil ik postcodes toebedelen aan bepaalde vestigingen, zodat dit automatisch kan gebeuren. We hebben nooit twee vestigingen in dezelfde plaats, dus is het altijd bij benadering.
Kan je niet gewoon beide vestigingen tonen en de klant zelf laten bepalen?
Misschien is die wel de ene dag bij vestiging A in de buurt en de andere dag bij vestiging Z.
Of is de weg afgesloten voor onderhoud, een file, etc. etc.

Gewoon de geografische lat/lon berekenen en toon wat opties.

Maak je niet druk, dat doet de compressor maar

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee