Ir para o conteúdo

Módulo weather

O módulo weather disponibiliza informações sobre a previsão meteorológica de uma determinada localidade para a data atual e os próximos 3 dias. A previsão é obtida por meio da API do The Weather Channel.

Parâmetros necessários

local

Tipo: string

Obrigatório: sim

Identificador da localidade de onde se pretende consultar a previsão meteorológica.

O valor pode ser um dos seguintes tipos:

Tipo Descrição
Nome de uma cidade O nome de uma cidade brasileira. Se houver mais de uma cidade com o mesmo nome, será selecionada a primeira automaticamente. Cuidado: você pode acabar exibindo a previsão da cidade errada.

Ex: "Rio de Janeiro"
Sigla de um aeroporto Cada aeroporto tem um identificador único, chamado Código IATA1. Usar este identificador retornará a previsão para a cidade onde o aeroporto está localizado.

Este método é mais seguro do que informar o nome da cidade, mas nem sempre estará disponível para a localidade desejada.

Ex: "BSB"
Coordenadas geográficas Coordenadas geográficas no formato latitude, longitude.

Este é o método mais preciso, e deve ser preferido sempre que possível.

Ex: "-15.867024, -47.968498"

Dica

O valor é insensível ao caso, portanto "BSB" e "bsb" retornam o mesmo resultado.

O bloco de código abaixo mostra como adicionar este parâmetro no widget:

Exemplo

"params" : [
    {
        "name" : "local",
        "field" : {
            "type" : "text",
            "label" : "Localidade",
            "required" : true,
            "helperText" : "Você deve informar o nome de uma cidade, como Brasília ou Rio de Janeiro, a sigla de um aeroporto, como BSB, ou uma coordena geográfica, como -15.867024, -47.968498"
        }
    }
]

Atenção

Note que diferente do valor, o nome do parâmetro é sensível ao caso. Portanto "local" é diferente de "LOCAL".

Valor de retorno

Este módulo sempre retornará um JSON como resposta, com a previsão do dia atual e dos próximos 3 dias.

Resposta com sucesso

{
    "weather" : [
        {
            "location" : "bsb",
            "city" : "Pres Juscelino Kubitschek International",
            "temperature" : {
                "max" : 31,
                "min" : 14,
                "current" : 30
            },
            "status" : "C\u00e9u Limpo",
            "date" : "Hoje",
            "icon" : "clear",
            "humidity" : "70%"
        },
        {
            "location" : "bsb",
            "city" : "Pres Juscelino Kubitschek International",
            "temperature" : {
                "max" : 32,
                "min" : 17
            },
            "status" : "Parcialmente Nublado",
            "date" : "Amanh\u00e3",
            "icon" : "partlycloudy"
        },
        {
            "location" : "bsb",
            "city" : "Pres Juscelino Kubitschek International",
            "temperature" : {
                "max" : 31,
                "min" : 16
            },
            "status" : "C\u00e9u Limpo",
            "date" : "Quinta",
            "icon" : "clear"
        },
        {
            "location" : "bsb",
            "city" : "Pres Juscelino Kubitschek International",
            "temperature" : {
                "max" : 31,
                "min" : 16
            },
            "status" : "C\u00e9u Limpo",
            "date" : "Sexta",
            "icon" : "clear"
        }
    ]
}
Neste caso foi feita uma consulta por "bsb", aeroporto de Brasília. Note que o valor consultado é retornado em location e o nome do aeroporto em city.

Note também que os campos temperature.current e humidity só aparecem no primeiro item, porque se referem a data atual.

Resposta com erro

null
Em casos de erro será retornado null.

Processando o retorno no widget

O valor retornado pelo módulo ficará disponível no atributo data-widget-data do elemento raiz. O código abaixo exemplifica como recuperar os dados da previsão para exibí-los na tela:

Exemplo

var widget = document.querySelector('.widget');
var data = JSON.parse(widget.dataset.widgetData);

if(data)
{
    var forecast = data.weather;
    console.log(forecast[0]);
    /*
    {
        "location" : "bsb",
        "city" : "Pres Juscelino Kubitschek International",
        "temperature" : {
            "max" : 31,
            "min" : 14,
            "current" : 30
        },
        "status" : "C\u00e9u Limpo",
        "date" : "Hoje",
        "icon" : "clear",
        "humidity" : "70%"
    }
    */
}
Neste exemplo, forecast é um array com 4 elementos, sendo 0 a data atual e 1, 2 e 3 os próximos 3 dias.


  1. Confira a lista de códigos IATA