VBA code excel welke postcode passeer je van postcode

Status
Niet open voor verdere reacties.

vadrianus80

Gebruiker
Lid geworden
11 dec 2013
Berichten
5
Wie kan een vba code maken die de postcodes genereert die je passeert als je van postcode a naar postcode b reist. Hier moet een tolerantie van 1 km van het midden van de postcode die je passeert, gehanteerd worden. Ik weet dat google maps veel kan. Ik heb bv code die mbv google maps de afstand tussen 2 postcodes berekend.
 
Hoe bepaal je het midden van een postcodegebied?
Plaats eens een bestand hoe je de berekening nu maakt.
 
Beste Alphamax,

De berekening wordt nu op de volgende wijze gemaakt:

Code:
Public Function GetPage(sLink As String) As XMLHTTP40
    Dim oObj As MSXML2.XMLHTTP40
    Set oObj = New XMLHTTP40
    oObj.Open "GET", sLink, False
    oObj.send ""
    Set GetPage = oObj
End Function

Code:
Public Function GetDistanceBetweenPostCodes(Code1 As String, Code2 As String)
    Dim oResult As XMLHTTP40
    Dim oDOM As DOMDocument40
    Dim sStr As String
    Dim sResult As String
    Dim dResult As Variant
    Dim sURL As String
    Const sKeyWords As String = "km</span>"
    sURL = "http://maps.google.nl/maps?f=d&hl=nl&geocode=&saddr="
    sURL = sURL & Code1 & "+to:"
    sURL = sURL & Code2
    Set oResult = GetPage(sURL)
    Set oDOM = New DOMDocument40
    sStr = oResult.responseText
    sResult = Mid(sStr, InStr(sStr, sKeyWords) - Len(sKeyWords), Len(sKeyWords))
    sResult = Replace(sResult, "<", "")
    sResult = Replace(sResult, "s", "")
    sResult = Replace(sResult, "p", "")
    sResult = Replace(sResult, "a", "")
    sResult = Replace(sResult, "n", "")
    sResult = Replace(sResult, ">", "")
    sResult = Replace(sResult, " ", "")
    dResult = CDec(sResult)
    GetDistanceBetweenPostCodes = dResult
End Function

plaats bijv postcode 1 in A1
postcode 2 in A2
en =GetDistanceBetweenPostCodes(A1;A2) in A3
 
Laatst bewerkt door een moderator:
Met de code bereken je de afstand tussen twee postcodes.
Hoe kom je aan de lijst met postcodes waar je doorheen reist?
Hoe weet je het midden van een postcode gebied?
hoe bereken de afstand tussen de route en het midden van het postcode gebied?
Vertel eens waar je dit voor nodig hebt, misschien is er al ooit iets voor gemaakt of vergelijkbaars.
Met een voorbeeldbestandje wordt je sneller en beter geholpen.
Ook ik weet dat er met google maps veel kan, google "google maps excel alphamax".
 
Laatst bewerkt:
Van de volgende casus zou ik graag van iemand van dit forum horen wat de VBA code moet zijn om dit werkend te krijgen. Dit is een tool die in het bedrijf waar ik werk vast moet stellen of vraag en aanbod naar autoritten matchen:

Aanbieder van autorit rijdt van zijn eigen woonadres A naar aankomstadres B.
Vrager 1 van autorit wil meerijden van eigen woonadres C naar aankomstadres F.
Vrager 2 van autorit wil meerijden van eigen woonadres D naar aankomstadres G.
Vrager 3 van autorit wil meerijden van eigen woonadres E naar aankomstadres H.
Aanbieder en vragers tezamen is maximaal 4.
Het rijden van A naar B gaat via de snelste route. Tijdens deze rit wordt bepaald door welke postcodes gereden wordt.
Bij het rijden van A naar B passeert de aanbieder woonadres C,D en E. De woonadressen C, D en E liggen binnen 1 km van de postcodes welke aanbieder bij het rijden van A naar B passeert. Deze postcodes noemen we I, J en K. De middelpunten van de postcodes C, D en E worden bepaald. Deze middelpunten worden afgezet tegen de middelpunten van postcodes I, J en K. Is dit 1 km of minder dan zijn aanbieder en vrager 1,2 en 3 aan elkaar gematcht op basis van deze voorwaarde.
Als de aankomstadressen B,F,G en H binnen een straal van 1 km t.o.v. elkaar liggen komen de vragers en aanbieder bij elkaar. Dan is voldaan aan een tweede voorwaarde.

Legenda:
De term Postcode adres is de reguliere postcode aanduiding van 4 cijfers en 2 letters.
Postcode adres A is woonadres aanbieder
Postcode adres B is aankomstadres aanbieder
Postcode adres C is woonadres vrager 1
Postcode adres D is woonadres vrager 2
Postcode adres E is woonadres vrager 3
Postcode adres F is aankomstadres vrager 1
Postcode adres G is aankomstadres vrager 2
Postcode adres H is aankomstadres vrager 3
Postcode adres I is passeeradres aanbieder
Postcode adres J is passeeradres aanbieder
Postcode adres K is passeeradres aanbieder (ervan uitgaande dat 3 postcodes gepasseerd worden )

Matching vindt dus plaats als voldaan wordt aan de volgende vergelijkingen:
(om de vergelijkingen duidelijk te maken en postcodes het uitgangspunt is, wordt in de vergelijkingen weergegeven Postcode adres A,B C etc)

Matching vindt plaats nadat met behulp van google maps van A naar B gereden wordt en weergegeven wordt welke postcodes worden doorkruist. Hierbij moet de snelste route toegepast worden.
Een matching vindt dan plaats als voldaan wordt aan de volgende voorwaarden. Dit zijn de voorwaarden voor matching tussen aanbieder en vrager 1, 2 en 3.


Midden van het Postcode adres I, J of K is minder of gelijk aan 1 km afstand van het midden van het Postcode adres C of Midden van het Postcode adres C,D of E is minder of gelijk aan 1 km afstand van het Midden van het Postcode adres A

En Midden van het Postcode adres B is minder of gelijk aan 1 km afstand van het Midden van het Postcode adres F, G of H of Midden van het Postcode adres I, J of K is minder of gelijk aan 1 km afstand van het Midden van het Postcode adres F,G of H[

Het midden van de postcode bepalen, daarvan weet ik eigenlijk niet zo goed hoe dat zou moeten. Ik heb code bij een reactie op mijn vraag hier neergezet die de afstand berekent tussen postcodes. Of google maps dit ook doet mbv het midden van de postcodes dan ben ik zeer benieuwd hoe google maps dat doet. Wie O Wie weet dit.
 
Google direction werkt met 4pp (1000) en met 6pp (1000AA).
Ik denk dat je voor jouw tool met 6pp moet werken, omdat 4pp gebieden te groot zijn.
Het maken van de tool die jij voor ogen hebt is denk ik voor de meesten hier een te grote uitdaging.
Ik denk dat je dit door een (semi)proffesional moet laten aanpakken.
 
Beste Alphamax,

Ik werk bij mijn eigen bedrijf, ik ben een starter. De VBA code die ik nodig heb is om in de opstartfase van het bedrijf te onderzoeken of het project haalbaar is. Ik werk met een zeer beperkt budget helaas. Daarom zou het zo mooi dat iemand dit prodeo zou willen doen. Als het project slaagt en enige omzet gegenereerd wordt, is het ook mogelijk dat voor verdere programmeer-werkzaamheden betaald gaat worden. De gegevens, waar ik voor het bewerken ervan de VBA code nodig heb, komen vanaf augustus 2014 beschikbaar. Zou jij dit willen doen of weet jij iemand die hiertoe bereid is. Ik hoor het graag.
 
Ik heb wel een idee hoe ik het kan aanpakken met VBA en een database.
Maar misschien kan je jouw vraag beter stellen op een Geographic information systems (GIS) forum.
Ik denk dat jouw probleem daar beter thuis is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan