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"
}
]
}
"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
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%"
}
*/
}
forecast
é um array com 4 elementos, sendo 0 a data
atual e 1, 2 e 3 os próximos 3 dias.
-
Confira a lista de códigos IATA. ↩