Kann mir jemand sagen was sich geändert haben soll?
A1= Hannover
B1 = Berlin
C1 = Entfernung("Deutschland," & A1;"Deutschland," & B1)
Public Function Entfernung(ByVal von As String, ByVal nach As String, Optional iTyp As Integer = _
_
_
_
_
0) As Variant
' V2 vom 18.06.2011
' V2.1 vom 15.10.2011 (EtoPHG) Km & Reisezeit
' Ermittlung der Entfernung zwischen zwei Adressen mit Hilfe von maps.google.de (kml-Output) _
_
_
_
_
' von: Google-Maps Adressbeschreibung des Starts, z. B. "Germany,Berlin"
' nach: Google-Maps Adressbeschreibung des Ziels, z. B. "France,Paris"
' Parameter iTyp=0 = Rückgabe ist dann die Entfernung laut Google in Kilometern
' iTyp=1 = Rückgabe ist dann ca. Reisezeit laut Google
Dim google As String
Dim dok As Object 'New DOMDocument
Dim knoten As Object 'IXMLDOMNodeList
Dim k As Object 'IXMLDOMNode
Set dok = CreateObject("MSXML.DOMDocument")
google = "http://maps.google.de/maps?hl=de&tab=ll&output=kml&saddr={0}&daddr={1}"
dok.async = False
von = Replace(von, " ", "%20")
nach = Replace(nach, " ", "%20")
dok.Load (Replace(Replace(google, "{0}", von), "{1}", nach))
If Not (dok Is Nothing) Then
' dok.setProperty "SelectionLanguage", "XPath"
dok.SetProperty "SelectionNamespaces", "xmlns:kml='http://earth.google.com/kml/2.0'" ' Wichtig! _
_
_
_
_
Sonst klappt SelectNodes nicht.
Set knoten = dok.DocumentElement.SelectNodes("//kml:Placemark/kml:name[text()='Route']") _
_
_
_
_
For Each k In knoten
Dim beschreibung As String
beschreibung = k.ParentNode.SelectSingleNode("kml:description").Text
' HTML-Entity-Konstante für nbsp entfernen
beschreibung = Replace(beschreibung, "Entfernung: ", "")
Select Case iTyp
Case 0
' Zahlen und Komma zwischen Doppelpunkt und km sind die Entfernung
beschreibung = Left(beschreibung, InStr(1, beschreibung, "&") - 1)
Entfernung = CDbl(beschreibung)
Case 1
'Text in (Klammern) ist die Reisezeit
Entfernung = Split(Split(beschreibung, "(")(1), ")")(0)
End Select
Next
Set knoten = Nothing
End If
Set dok = Nothing
End Function