Geo location do google

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Geo location do google

Mensagem por JoséQuintas »

Do fórum harbour-users.

Código: Selecionar todos

//-----------------7
FUNCTION GetGeocode( cAddress, cKey)
LOCAL cCoordinates:= "", nLatitude:= 0, nLongitude:= 0
LOCAL cUrl, oUrl, oClient, cChunk, cData

//1600+Amphitheatre+Parkway,+Mountain+View,+CA

cAddress:= STRTRAN( cAddress, " ", "+" )
cUrl:= "https://maps.googleapis.com/maps/api/geocode/xml?key="+cKey+"&address="+ALLTRIM(cAddress)+"&sensor=false"

oUrl := TUrl():New( cUrl )
oClient := TIPClientHTTP():new( oUrl )
IF oClient:Open()
   cChunk:= oClient:Read()
   cData:= ""
   WHILE !EMPTY( cChunk )
      cData+= cChunk
      cChunk:= oClient:Read()
   ENDDO
   IF LEN( cData ) > 0
      cCoordinates:= getTAG( "geometry", cData )
      cCoordinates:= getTAG( "location", cCoordinates )
      nLatitude:= VAL( getTAG( "lat", cCoordinates ) )
      nLongitude:= VAL( getTAG( "lng", cCoordinates ) )
   ENDIF

   oClient:Close()
ENDIF
RETURN { nLatitude, nLongitude }

//------------------------
FUNCTION getTAG(xtag,xml)
LOCAL xret, xpos, xini:= 1, xfim
xpos:= HB_AT("<"+xtag+">",xml,xini)
IF EMPTY( xpos )
   xpos:= HB_AT("<"+xtag+" ",xml,xini)
ENDIF
IF xpos > 0
   xpos:= xpos+LEN(xtag)+2
   xfim:= HB_AT("</"+xtag+">",xml,xpos)
   xret:= SUBS(xml,xpos,xfim-xpos)
ELSE
   xret:= ""
ENDIF
RETURN xret
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Geo location do google

Mensagem por asimoes »

Como é que funciona isso?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder