Ik heb via de forum al verschillende bestandjes gebruikt maar geen enkele doet wat ik graag wil. In cel A een postcode, in cel B een postcode en dan in cel C de afstand tussen deze twee postcodes berekend via de meest logische route in Google Maps.
Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
Public Function afstand(Code1 As String, Code2 As String)
Dim oResult As XMLHTTP40
Dim oDOM As DOMDocument40
Dim sStr As String
Dim sResult As String
Dim sURL As String
Const sKeyWords As String = "</strong> route over <strong>"
sURL = "http://route.anwb.nl/routeplanner/servlet/rp?action=0&zip1="
sURL = sURL & Code1 & "&city1=&street1=&zip2="
sURL = sURL & Code2 & "&city2=&street2=&iad=homepage.navigatie.middenkolom.routeplannerplanroute"
Set oResult = GetPage(sURL)
Set oDOM = New DOMDocument40
On Error Resume Next
sStr = oResult.responseText
sStr = oResult.responseText
sResult = Mid(sStr, InStr(sStr, sKeyWords) + Len(sKeyWords))
sResult = Replace(Mid(sResult, 1, InStr(sResult, "m") - 1), ",", ".")
afstand = Val(Left(sResult, Len(sResult) - 1)) * IIf(Right(sResult, 1) = "k", 1, 0.001)
End Function
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
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
Public Function GetPage(sLink As String) As XMLHTTP60
Dim oObj As MSXML2.XMLHTTP60
Set oObj = New XMLHTTP60
oObj.Open "GET", sLink, False
oObj.send ""
Set GetPage = oObj
End Function
Public Function GetDistanceBetweenPostCodes(Code1 As String, Code2 As String)
'With GetPage("http://maps.google.be/maps?f=d&hl=b&geocode=&saddr=" & Code1 & "+to:" & Code2) 'België
With GetPage("http://maps.google.nl/maps?f=d&hl=nl&geocode=&saddr=" & Code1 & "+to:" & Code2) 'Nederland
GetDistanceBetweenPostCodes = CDec(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Mid _
(.responseText, InStr(.responseText, "km</span>") - Len("km</span>"), Len("km</span>")), _
"<", ""), "s", ""), "p", ""), "a", ""), "n", ""), ">", ""), " ", ""))
End With
End Function
Function F_afstand_snb(c01, c02)
With New XMLHTTP60
.Open "GET", "http://maps.google.nl/maps?f=d&hl=nl&geocode=&saddr=" & c01 & "+to:" & c02, False
.send
F_afstand_snb = Trim(Right(Split(.responseText, "km</span>")(0), 4))
End With
End Function
Sub M_snb()
MsgBox F_afstand_snb("6828CK", "5114AN")
End Sub
bron: http://nl.wikipedia.org/wiki/Postcodes_in_NederlandDe eerste postcode die een straat aangeeft is 1011 AA. Dat is de De Ruijterkade, de straat die achter het Centraal Station loopt. De hoogste postcode is 9999 ZZ, de Knolweg te Stitswerd.
Public Function GoogleMapsXMLDistance(rngOrigin As Range, rngDestination As Range) As Double
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" & rngOrigin.Value & "&destination=" & rngDestination.Value & "&alternatives=false&units=metric&sensor=false", False
.send
GoogleMapsXMLDistance = CDbl(.responseXML.SelectSingleNode("//leg/distance/value").Text) / 1000 'am_2012
End With
End Function
Public Function F_afstand_XML(c01, c02)
With New XMLHTTP ' With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" & c01 & "&destination=" & c02 & "&sensor=false", False
.send
F_afstand_XML = .responseXML.SelectSingleNode("//leg/distance/value").Text / 10 ^ 3
End With
End Function
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.