PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Endereco das Coordenadas Latitude e Longitude
Endereco das Coordenadas Latitude e Longitude
Débuté par adrianoboller, 18 nov. 2014 13:46 - Aucune réponse
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 18 novembre 2014 - 13:46
ProcedureWS_CEP_EnderecoDasCoordenadas(LOCALpLatitude isstring,LOCALpLongitude isstring,LOCALDebugSN)

IFGloDebugSN="S"THEN
Info("WS_CEP_EnderecoDasCoordenadas")
DebugSN="S"
END
//pLatitude= "-25.431637"
//plongitude ="-49.203203"
NextTitle("Atenção")

ok isboolean=False
GloEnderecoOK=False

Endereco,RetJson isstring=""
IFpLatitude<>0ANDpLongitude<>0ANDpLatitude<>NullANDpLongitude<>NullTHEN

Url isstring="http://maps.googleapis.com/maps/api/geocode/json?latlng="+pLatitude+","+pLongitude+"&sensor=true"

IFDebugSN="S"
Info("01",Url)
END

HTTPTimeOut(GloHTTPTimeOut)


ok=HTTPRequest(Url)

IFok=TrueTHEN

ChangeCharset(charsetOccidental)// SEM ACENTO


RetJson=WS_Android_IOS_HTTPGetResult()//HTTPGetResult(httpResult)
IFLength(RetJson) =0THEN

ok=False
ELSE



IFDebugSN="S"
Info(Url,RetJson)
END

///// teste
//TagEndac is string
//io is int = PositionOccurrence(RetJson, TagEndac, firstRank, IgnoreCase )// + Length(TagEndac)
//
//
//TagEndac = Middle(retjson,PositionOccurrence(RetJson,"""address_components"" :", firstRank, IgnoreCase ),Length(RetJson))
//blocoJson is string = Middle( tagEndac,1,PositionOccurrence(TagEndac,"],", firstRank, IgnoreCase ))
////<Result> = ExtractString(<Initial String> , <Rank> [, <Separator> [, <Browse Direction>]])
//
// if (blocoJson<> "") THEN
//Endereco = ExtractString(blocoJson,firstRank,"""types"" : [ ""street_number"" ]",FromEnd)
//END
//
////Pega endereço (entre duas aspas)
//IF io> 0 THEN
//Endereco = ExtractString(RetJson[[io TO]],4,"""")
//GloEnderecoOK = True
//
//END
////teste
//


TagEnd isstring="""formatted_address"" :"
i isint=PositionOccurrence(RetJson,TagEnd,firstRank,IgnoreCase) +Length(TagEnd)
Endereco=""
//Pega endereço (entre duas aspas)
IFi>0THEN
Endereco=ExtractString(RetJson[[i TO]],2,"""")
GloEnderecoOK=True

END

IFEndereco=""ORRetJson="ERRO"THEN
// busca por XML
GloEnderecoOK=False
Url="http://maps.googleapis.com/maps/api/geocode/xml?latlng="+pLatitude+","+pLongitude+"&sensor=true"

IFDebugSN="S"
Info("02",Url)
END

HTTPTimeOut(GloHTTPTimeOut)

ok=HTTPRequest(Url)
IFok=TrueTHEN

RetXml isstring=WS_Android_IOS_HTTPGetResult()// HTTPGetResult(httpResult)

IFLength(RetXml) =0THEN

ok=False
ELSE

IFDebugSN="S"
Info("Xml:",RetXml)
END

//<formatted_address>Rua Professora Antonia Reginato Vianna, 442 - Capão da Imbuia, Cajuru, Curitiba - PR, 82810-300, Brasil</formatted_address>

IFPositionOccurrence(RetXml,"<formatted_address>",firstRank) >0THEN

//Endereço
nPosicaoInicial isint=PositionOccurrence(RetXml,"<formatted_address>",firstRank) +Length("<formatted_address>")
nPosicaoFinal isint=PositionOccurrence(RetXml,"</formatted_address>",firstRank) +Length("</formatted_address>")
nPosicaoFinal=nPosicaoFinal-nPosicaoInicial
Endereco=Middle(RetXml,nPosicaoInicial,nPosicaoFinal)
GloEnderecoOK=True

END
END
END
END
END
END

IFok=FalseTHEN
Popup(GloMsgSemInternet,"L")
END



Endereco=WS_RemoveAcentos(Endereco)

END





RESULT(Endereco)
>