I need some help created a google weather api using vb .net.

I found the code online and there are no errors. Problem is that I can't seem to display wether information. Nothing shows up on screen and I am not sure what I did wrong. any ideas?

Imports System.Net

Partial Class UI_MasterPage
    Inherits System.Web.UI.MasterPage

    Protected Sub SearchIB_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles SearchIB.Click
        Dim WeatherData As New Weather.WeatherInfo_Typed
        WeatherData = Weather.Grab_Weather("texas")
        temp.InnerHtml &= WeatherData.location & "--" & WeatherData.forcast_date & "--" & WeatherData.checked_time_date & "--" & WeatherData.humidity & "--" & WeatherData.forcast_date 
    End Sub
End Class

Module Weather

    Public Structure WeatherInfo_Forecast
        Dim DayOfWeek As String
        Dim low As Double
        Dim high As Double
        Dim icon As String
    End Structure

    Public Structure WeatherInfo_Wind
        Dim direction As String
        Dim speed As Double
        Dim unit As String
    End Structure

    Public Structure WeatherInfo_Typed
        Dim Failed As Boolean
        Dim errormessage As Exception
        Dim location As String
        Dim forcast_date As DateTime
        Dim checked_time_date As DateTime
        Dim humidity As Double
        Dim highf As Double
        Dim lowf As Double
        Dim highc As Double
        Dim lowc As Double
        Dim currenttempC As Double
        Dim currenttempF As Double
        Dim predicted_icon As String
        Dim current_icon As String
        Dim current_condition As String
        Dim predicted_condition As IEnumerable(Of WeatherInfo_Forecast)
        Dim wind_condition As WeatherInfo_Wind
        Dim day As String
    End Structure

    <Runtime.CompilerServices.Extension()> _
    Public Function ToC(ByVal F As Double) As Double
        Return ((F - 32) / 9) * 5
    End Function

    <Runtime.CompilerServices.Extension()> _
    Public Function TryParseAsDouble(ByVal s As String) As Double
        Dim rv As Double
        If Double.TryParse(s, rv) = False Then rv = Double.NaN
        Return rv
    End Function

    <Runtime.CompilerServices.Extension()> _
    Public Function TryParseAsDate(ByVal s As String) As DateTime
        Dim rv As DateTime
        If DateTime.TryParse(s, rv) = False Then rv = Nothing
        Return rv
    End Function

    Private Function ParseHumidity(ByVal s As String) As Double
        If Not s Is Nothing Then
            Dim humRegEx As New System.Text.RegularExpressions.Regex("Humidity: (?<Value>\d+)\w*\%")
            Dim m = humRegEx.Match(s)
            If m.Length = 0 Then Return Double.NaN
            Return Double.Parse(m.Groups("Value").Value)
        End If
    End Function

    Private Function ParseWind(ByVal s As String) As WeatherInfo_Wind
        Dim rv As New WeatherInfo_Wind
        If Not s Is Nothing Then
            Dim humRegEx As New System.Text.RegularExpressions.Regex("Wind\:\s+(?<Direction>[NEWSnews]{1,2})\s+at\s+(?<speed>(?<value>\d+)\s(?<units>\w+)){1}")
            Dim m = humRegEx.Match(s)
            rv.speed = Double.NaN
            If m.Length = 0 Then Return rv
            With rv
                .direction = m.Groups("Direction").Value
                If Double.TryParse(m.Groups("value").Value, .speed) = False Then .speed = Double.NaN
                .unit = m.Groups("units").Value
            End With
        End If
        Return rv
    End Function

    Public Function Grab_Weather(ByVal Location As String) As WeatherInfo_Typed
        Dim GrabWeather As New WeatherInfo_Typed
        With GrabWeather
            .Failed = True
                Dim xml As XDocument = XDocument.Load("http://www.google.com/ig/api?weather=" & Location)
                Dim xp = xml.<problem_cause>
                If xp.Any Then Return GrabWeather
                .location = xml...<city>.@data
                .forcast_date = xml...<forecast_date>.@data.TryParseAsDate
                .checked_time_date = xml...<current_date_time>.@data.TryParseAsDate
                .humidity = ParseHumidity(xml...<humidity>.@data)
                .highf = xml...<high>.@data.TryParseAsDouble
                .lowf = xml...<low>.@data.TryParseAsDouble
                .highc = GrabWeather.highf.ToC
                .lowc = GrabWeather.highc.ToC
                .currenttempC = xml...<temp_c>.@data.TryParseAsDouble
                .currenttempF = xml...<temp_f>.@data.TryParseAsDouble
                '.current_icon = "http://www.google.com" & xml...<icon>.@data
                '.predicted_icon = "http://www.google.com" & xml...<high>.@data
                .current_condition = xml...<condition>.@data
                .predicted_condition = From f In xml...<forecast_conditions> _
                                    Select New WeatherInfo_Forecast With { _
                                      .DayOfWeek = f.<day_of_week>.Value, _
                                      .high = f.<high>.@data.TryParseAsDouble, _
                                      .low = f.<low>.@data.TryParseAsDouble}
                '.icon = "http://www.google.com" & f.<icon>.@data}
                .wind_condition = ParseWind(xml...<wind_condition>.@data)
                .day = xml...<day_of_week>.@data
                .Failed = False

                Return GrabWeather
            Catch ex As Exception
                .errormessage = ex

                Return GrabWeather
            End Try
        End With
    End Function
End Module

From a quick perusal, I see, you're using an object(temp) that doesn't appear to be instantiated anywhere.

This article has been dead for over six months. Start a new discussion instead.