Files
SDL/_VERAG_PROG_ALLGEMEIN/Google/cGoogleAPI.vb
2024-10-02 08:59:41 +00:00

65 lines
2.5 KiB
VB.net

Imports System.IO
Imports System.Net
Imports System.Web
Imports System.Text
Public Class cGoogleAPI
Public Shared APIKEY_distancematrix As String = "AIzaSyAyXX4aYtoE_v0tXhmuiApV6Qo2Ka2ObJY"
Public Shared Sub test()
Dim duration = ""
Dim distance = ""
Dim distanceSek = ""
GoogleDistance("A 4975 Suben 100", "A st. marienkirchen Hackenbuch 27", duration, distanceSek, distance)
MsgBox(duration)
MsgBox(distance)
End Sub
Public Shared Sub GoogleDistance(origin As String, destination As String, ByRef duration As Object, ByRef distance As Object, Optional lkw As Boolean = True)
Try
Dim url As String = "https://maps.googleapis.com/maps/api/distancematrix/xml?origins=" & HttpUtility.UrlEncode(origin) & "&destinations=" + HttpUtility.UrlEncode(destination) & "&key=" & APIKEY_distancematrix
' MsgBox(url)
Dim request As WebRequest = WebRequest.Create(url)
Dim response As WebResponse = CType(request.GetResponse(), HttpWebResponse)
Dim reader As StreamReader = New StreamReader(response.GetResponseStream(), Encoding.UTF8)
Dim dsResult As DataSet = New DataSet()
dsResult.ReadXml(reader)
If lkw Then
Dim durationSek As Integer = 0
If dsResult.Tables("duration") Is Nothing Then
durationSek = 0
Else
durationSek = dsResult.Tables("duration").Rows(0)("value").ToString()
End If
If IsNumeric(durationSek) Then
durationSek = durationSek * 1.5 ' Bei LKW wird die Zeit um diesen Faktor hochgerechnet
Dim iSpan As TimeSpan = TimeSpan.FromSeconds(durationSek)
duration = iSpan.Hours.ToString.PadLeft(2, "0"c) & " Stunden " & iSpan.Minutes.ToString.PadLeft(2, "0"c) & " Minuten"
End If
Else
If dsResult.Tables("duration") Is Nothing Then
duration = ""
Else
duration = dsResult.Tables("duration").Rows(0)("text").ToString()
End If
End If
If dsResult.Tables("distance") Is Nothing Then
distance = ""
Else
distance = dsResult.Tables("distance").Rows(0)("text").ToString()
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
End Class