Jump to content
Fivewin Brasil

kapiaba

Membros
  • Posts

    24,540
  • Joined

  • Last visited

  • Days Won

    282

Posts posted by kapiaba

  1. Edutek, faça isso funcionar corretamente, PSL. Seu exemplo não está nada bom...

    [code]
    #include "fivewin.ch"

    FUNCTION Main()

       LOCAL mLat, mLong

       // Latitude e longitude e:  -22.63458 , -47,30005

       mLat  := "-22.63458"
       mLong := "-47,30005"

       orion_jornada_AchaEndereco( mLat, mLong )

    RETURN NIL

    FUNCTION orion_jornada_AchaEndereco( mLat, mLong )

       LOCAL CDOCXML, MRODOVIA, MCIDADE, MAREA, MESTADO, MREGIAO, CTXT1, ;
             MREGISTRO, NI, CTEMP
       LOCAL cGoogleURL := "https://nominatim.openstreetmap.org/reverse?format=xml&"
       LOCAL cAddress   := "lat=" + AllTrim( mLat ) + "&lon=" + AllTrim( mLong )
       LOCAL aReturn, i, cTxt := ""

       IF Empty( mLat )

          mLat := jornada->latitudegps
          mLong := Jornada->longitudegps

          cAddress   := "lat=" + AllTrim( mLat ) + "&lon=" + AllTrim( mLong )

       ENDIF

       // aReturn := hb_jsonDecode( WebPageContents( cGoogleURL + cAddress) )   // *** Change this ***
       cDocXML := WebPageContents( cGoogleURL + cAddress )

       // hb_jsondecode( aReturn, @aReturn ) && se lá na URL vc colocar format "json" - eu uso "XML"
       IF .NOT. Empty( cDocXML )

          ? cDocXML  // NAO RETORNOU POHHA NENHUMA. kkkkkk

          mRodovia  := LerTag( cDocxml, "road" )
          mCidade   := LerTag( cDocxml, "town" )
          mArea     := LerTag( cDocxml, "municipality" )
          mEstado   := LerTag( cDocxml, "state" )
          mRegiao   := LerTag( cDocxml, "region" )

          mRodovia  := iif( Len( RTrim( mrodovia ) ) > 0, mRodovia + ", ", "" )
          mCidade   := iif( Len( RTrim( mCidade ) ) > 0, mCidade + ", ", "" )
          mestado   := iif( Len( RTrim( mEstado ) ) > 0, mEstado + ", ", "" )
          mRegiao   := iif( Len( RTrim( mRegiao ) ) > 0, mRegiao + ", ", "" )

          cTxt1     := mRodovia + mcidade + mEstado + mRegiao + mArea

          // QUE POHHA E ESSA?
          // cTXT      := U8ToUni( cTXT1, "UTYPE_ANSI" )

          IF Len( AllTrim( ctxt ) ) < 10

             cTxt := "Localização não Encontrada"

          ENDIF

       ELSE

          cTxt := "Localização não Encontrada"

       ENDIF

       /* QUAL A ESTRUTURA DESTE BANCO DE DADOS?
       dbSelectArea( "jornada" )

       mregistro := jornada->( RecNo() )
       */

       grava_dados( "A", "jornada", { "local" }, { cTxt }, Alias(), "S" )

       XBROWSE( cTxt1 )

    RETURN NI

    FUNCTION LERTAG( MsgRetWs, cNode ) // ESTA CORRETO?

       LOCAL cData:=""
       LOCAL nPos,nPos1,cTempo, CTEMP

       WHILE( .T. )

          SYSREFRESH()

          nPos := At("<"+cNode+">",MsgRetWs)

          cTemp:=Substr(MsgRetWs,nPos+len(cNode)+2)

          If At("<"+cNode+">",cTemp)!=0

             nPos1 := At("</"+cNode+">",cTemp)

             cTemp := Substr(cTemp,nPos1+len(cNode)+3)

             MsgRetWs := cTemp

          Else

             Exit

          Endif

          SysRefresh()

       ENDDO

       nPos1 := At("</"+cNode+">",MsgRetWs)

       If nPos!=-0.and.nPos1!=0

          cData := Substr(MsgRetWs,nPos+Len(cNode)+2,nPos1-(nPos+Len(cNode)+2))

       Endif

    RETURN( cData )

    FUNCTION GRAVA_DADOS() // PONHA A ORIGINAL

    RETURN NIL

    // FIN / END
    [/code]

    Regards, saludos.

×
×
  • Create New...