Página 1 de 1

Previsao do tempo

Enviado: 26 Dez 2012 13:29
por Adalberto
Caros amigos e amigas deste foro,

Em este foro, faz tempo, encontre uma função para a previsão do tempo, agora que necessito ler de novo esse tópico, não sei como achar ele, acredito que meu fraco português não alcança para buscar. Se alguém sabe onde posso encontrar esse tema, por favor, me ajude.

Aproveito este tópico para expressar, a cada um de vocês, meus sinceros desejos de prosperidade no novo ano; Deus nasceu como um de nós para redimir-nos, meu desejo e minha oração para que seus nomes sejam registrados no livro dos salvados e desfrutem de vida eterna.

[] Adalberto

Previsao do tempo

Enviado: 26 Dez 2012 20:13
por fladimir
Adalberto eu peguei aki no fórum o código postado abaixo, porém não esta funcionando mais, tipo na época funcionou, agora não funciona mais... eu não tive tempo pra analisar o pq, em todo caso segue o código q foi extraido do fórum, pelo q me lembro talvez tenha algumas leves modificações, mas nada drástico, no geral o código é o mesmo.

[]´s

Código:

Código: Selecionar todos

/********* * * * * *
* PrevisaoDoTempo 
*
* Parametro: string com o 'nome da cidade, estado'
*
* Retorno: hash com dados sobre o clima
*
* hash["CidadeBase"]       => Cidade localizada com este nome
* hash["CondicaoAtual"]    => Condição climatica atual na cidade
* hash["TemperaturaAtual"] => Temperatura atual na cidade
* hash["UmidadeAtual"]     => Umidade atual na cidade
* hash["VentoAtual"]       => Vento atual na cidade (direcao e velocidade)
* hash["aProximosDias"]    => Array com a previsao para os proximos dias
*  aProximosDias = { cDiaDaSemana, cTempMax, cTempMin, cCondicao }
*/

#include "hbxml.ch"

//------------------------------------------------------------------------------
FUNCTION PrevisaoDoTempo( cCidade )

	LOCAL oHttp, cXML, oXML
	LOCAL oCidade, oTemperatura, oUmidade, oVento, oCondicao
	LOCAL oPrevisao, oTagAtual, oIterator
	
	LOCAL cDia, cMax, cMin, cCond, i
	LOCAL aDias := {}
	
	LOCAL hDiasSemana      := HB_Hash()
	LOCAL hPrevisaoDoTempo := HB_Hash()
	
	IF !INetEstaConectada()
	   return
	Endif
	
	
	hDiasSemana["dom"] := "Domingo"
	hDiasSemana["seg"] := "Segunda-feira"
	hDiasSemana["ter"] := "Terçaa-feira"
	hDiasSemana["qua"] := "Quarta-feira"
	hDiasSemana["qui"] := "Quinta-feira"
	hDiasSemana["sex"] := "Sexta-feira"
	hDiasSemana["sáb"] := "Sábado"
	
	cCidade := StrTran( AllTrim( cCidade ), " ", "%20" )
	
	oHttp:= TIpClientHttp():new( "http://www.google.com/ig/api?weather="+cCidade+"&hl=pt-br" )
	IF ! oHttp:open()
	   RETURN 0
	ENDIF
	cXML := oHttp:readAll()
	oHttp:close()
	
	oXML := TXmlDocument():New( cXML )

	IF oXML:nError != HBXML_ERROR_NONE
	   RETURN 0
	ENDIF
	
	oCidade      := oXML:findfirst( "city" )
	oCondicao    := oXML:findfirst( "condition" )
	oTemperatura := oXML:findfirst( "temp_c" )
	oUmidade     := oXML:findfirst( "humidity" )
	oVento       := oXML:findfirst( "wind_condition" )
	
	oPrevisao := oXML:findfirst( "forecast_conditions" )
	IF oPrevisao == NIL
	   RETURN hPrevisaoDoTempo
	ENDIF
	
	DO WHILE .T.
	   oIterator := TXmlIterator():New( oPrevisao )
	   DO WHILE .T.
	      oTagAtual := oIterator:Next()
	      IF oTagAtual == NIL
	         aAdd( aDias, { cDia, cMin, cMax, cCond } )
	         EXIT
	      ELSE
	         IF oTagAtual:cName == "day_of_week"
	            cDia := oTagAtual:aAttributes[ "data" ]
	         ELSEIF oTagAtual:cName == "low"
	            cMin := StrZero( val( oTagAtual:aAttributes[ "data" ] ), 2 )
	         ELSEIF oTagAtual:cName == "high"
	            cMax := StrZero( val( oTagAtual:aAttributes[ "data" ] ), 2 )
	         ELSEIF oTagAtual:cName == "condition"
	            cCond := oTagAtual:aAttributes[ "data" ]
	         ENDIF
	      ENDIF
	   ENDDO
	   oPrevisao := oXML:findnext()
	   IF oPrevisao == NIL
	      EXIT
	   ENDIF
	ENDDO
	
	hPrevisaoDoTempo["CidadeBase"]       = oCidade:aAttributes[ "data" ]
	hPrevisaoDoTempo["CondicaoAtual"]    = oCondicao:aAttributes[ "data" ]
	hPrevisaoDoTempo["TemperaturaAtual"] = oTemperatura:aAttributes[ "data" ]
	hPrevisaoDoTempo["UmidadeAtual"]     = oUmidade:aAttributes[ "data" ]
	//hPrevisaoDoTempo["VentoAtual"]       = oVento:aAttributes[ "data" ]
	hPrevisaoDoTempo["aProximosDias"]    = {}
	FOR i:=1 to LEN( aDias )
	   AAdd( hPrevisaoDoTempo["aProximosDias"], { hDiasSemana[aDias[i][1]], aDias[i][3], aDias[i][2], aDias[i][4] } )
	NEXT
	
	If Len(hPrevisaodoTempo)>1
	//   @ 18,00 say 'Cidade..: ' + hPrevisaoDoTempo["CidadeBase"]         color('GR+/N')
	   @ 19,00 say 'Temperatura.....: ' + hPrevisaoDoTempo["TemperaturaAtual"] + '§' color('W*+')
	   @ 19,24 say '   '+hPrevisaoDoTempo["UmidadeAtual"]              COLOR("W*+")
	   @ 19,40 say '     Condicao: ' + hPrevisaoDoTempo["CondicaoAtual"]      color('W*+')
	   @ 19,67 say 'Fonte: Google'   color('W*+')
	//   @ 19,30 say hPrevisaoDoTempo["VentoAtual"]              COLOR("W*+")
	/*
	   x :=hPrevisaoDoTempo["aProximosDias"]
	   @ 06,0 say 'Proximos Dias'
	   @ 08,0 say 'Dia.......: ' + PADR( x[2,1], 23 , " ")   //+ 'Dia.....: ' + PADR( x[3,1], 22 , " ")
	   @ 09,0 say 'Maxima....: ' + PADR( x[2,2], 23 , " ")   //+ 'Maxima..: ' + PADR( x[3,2], 22 , " ")
	   @ 10,0 say 'Minima....: ' + PADR( x[2,3], 23 , " ")   //+ 'Minima..: ' + PADR( x[3,3], 22 , " ")
	   @ 11,0 say 'Condicao..: ' + PADR( x[2,4], 23 , " ")   //+ 'Condicao: ' + PADR( x[3,4], 22 , " ")
	*/   
	Endif
	inkey(0)
RETURN 

Previsao do tempo

Enviado: 26 Dez 2012 20:48
por sygecom
Olá Pessoal,
Para quem usa esse recurso do Google, fique esperto por que pelo que li vai ser desativado:
http://support.google.com/websearch/bin ... er=2664197

Previsao do tempo

Enviado: 28 Dez 2012 18:31
por Adalberto
Caros amigos,

Muito obrigado pela ajuda fornecida.

! Desfruten da alegria de viver ¡

[] Adalberto

Previsao do tempo

Enviado: 28 Dez 2012 22:38
por fladimir
Adalberto, deu certo? Pergunto pois o código q postei funcionava porém não estava funcionando mais ultimamente... vc mudou algo?

[]´s

Previsao do tempo

Enviado: 31 Dez 2012 10:56
por jamazevedo
Não está funcionando porque o Google tirou o serviço do ar.

Previsao do tempo

Enviado: 31 Dez 2012 11:15
por fladimir
Puxa q pena né... será q tem outra forma?