PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → géoRécupèreAdresse ou comment récupérer latitude/longitude depuis une adresse
géoRécupèreAdresse ou comment récupérer latitude/longitude depuis une adresse
Débuté par Eric67, 05 aoû. 2015 20:56 - 14 réponses
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 05 août 2015 - 20:56
Bonjour,

J'ai besoin de récupérer les coordonnées Latitude / Longitude depuis une adresse postale.

La fonction géoRécupèreAdresse semble toute indiquée pour cela et fonctionne. Cependant, la fonction ouvre automatiquement une boite de dialogue permettant à l'utilisateur de sélectionner une adresse dans le cas ou plusieurs adresses correspondent à une même description.

Savez-vous s'il est possible de contourner cela et de ne pas ouvrir cette boite de dialogue ? En effet, je ne souhaite pas qu'il y ait d'interaction avec l'utilisateur final...

Je précise que je souhaite mettre cela en oeuvre sur android (WM20). En l'occurrence, je ne peux donc pas employer la fonction GglAdresseVersCoordonnées.

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:03
Procedure CEP_Rota(LOCAL Origem, LOCAL Destino, LOCAL DebugSN)

//Origem ="dr goulin 1699 curitiba PR"
//Destino = "jose lopacinsk 500 curitiba PR"

IF Origem <> "" AND Destino = "" THEN
Destino = Origem
END

nVirgula is int = 0

gbLocalizouRota is boolean

//VARIAIVEIS
nID_Numero is int = 1
nID_Endereco is int = 1
nID_Bairro01 is int = 1
nID_Bairro02 is int = 1
nID_Cidade01 is int = 1
nID_Cidade02 is int = 1
nID_Estado is int = 1
nID_Pais is int = 1
nID_CEP is int = 1
nQTD_ADDRESS_COMPONENT is int = 0

GloRotaEncode is string

//Limpa variaveis
//Endereço de Origem
GloVoceEnderecoLongo = "ERRO"
GloDestinoEnderecoLongo = "ERRO"
//GloVoceLatitude = 0
//GloVoceLongitude = 0
//GloDestinoLatitude = 0
//GloDestinoLongitude = 0

//Norte
GloLatitudeNorte = ""
GloLongitudeNorte = ""

//Sul
GloLatitudeSul = ""
GloLongitudeSul = ""

//Tempo
GloTempoDestino = ""
GloTempoDestinoText = ""
GloTempoTaxi = ""

//Distancia
GloDistanciaDestino = ""
GloDistanciaDestinoText = ""
GloDistanciaTaxi = ""

//Rota
//GloDebugSN, GloVoceEnderecoLongo, GloVoceEndereco, GloDestinoEnderecoLongo, GloDestinoEndereco, GloTempoDestino, GloTempoDestinoText, GloTempoTaxi, GloDistanciaDestino, GloDistanciaDestinoText, GloDistanciaTaxi, GloVoceLatitude, GloVoceLongitude, GloDestinoLatitude, GloDestinoLongitude, GloLatitudeNorte, GloLongitudeNorte, GloLatitudeSul, GloLongitudeSul is string

//Origem
//LocEnderecoOrigem, LocEnderecoCurtoOrigem, LocNumeroOrigem, LocBairro01Origem, LocBairro02Origem, LocCidade01Origem, LocCidade02Origem, LocEstadoOrigem, LocPaisOrigem, LocCepOrigem, LocLatitudeOrigem, LocLongitudeOrigem, LocLatitudeOrigemNorte, LocLongitudeOrigemNorte, LocLatitudeOrigemSul, LocLongitudeOrigemSul is string = ""

//Destino
//LocEnderecoDestino, LocEnderecoCurtoDestino, LocNumeroDestino, LocBairro01Destino, LocBairro02Destino, LocCidade01Destino, LocCidade02Destino, LocEstadoDestino, LocPaisDestino, LocCepDestino, LocLatitudeDestino, LocLongitudeDestino, LocLatitudeDestinoNorte, LocLongitudeDestinoNorte, LocLatitudeDestinoSul, LocLongitudeDestinoSul is string = ""


ok is boolean = False

IF Origem <> "" AND Destino <> ""

ChangeCharset(charsetOccidental) // SEM ACENTO

Origem = Replace(Origem," ","+")

Origem = Capitalize(WS_RemoveAcentos(Origem))

Destino = Replace(Destino," ","+")

Destino = Capitalize( WS_RemoveAcentos(Destino))

//Aceita endereço e lat e long na origem e destino
UrlRota is string = "http://maps.googleapis.com/maps/api/directions/xml?origin="+Origem+"&destination="+Destino+"&sensor=false&mode=driving"

IF DebugSN ="S" THEN
Info("URL Busca Origem Google",UrlRota)
END
ok = HTTPRequest(UrlRota)


//Rota
IF ok = True THEN

XmlResultado is string = CEP_HTTPGetResult()

IF PositionOccurrence(XmlResultado,"<status>OK</status>",firstRank,FromBeginning) > 0 OR PositionOccurrence(XmlResultado,"<status>ok</status>",firstRank,FromBeginning) > 0



IF Length(XmlResultado) > 0 THEN

//Point Market
//---------------------------------------------------------------------------------------------------------//
GloRotaEncode = XmlResultado
nInicioPoint is int = PositionOccurrence(XmlResultado,"<copyrights>",firstRank,FromBeginning)
GloRotaEncode = Middle(XmlResultado,nInicioPoint,Length(XmlResultado))
nInicioPoint = PositionOccurrence(GloRotaEncode,"<points>",firstRank,FromBeginning)+Length("<points>")
nFinalPoint is int = PositionOccurrence(GloRotaEncode,"</points>",firstRank,FromBeginning)
GloRotaEncode = Middle(GloRotaEncode,nInicioPoint,nFinalPoint-nInicioPoint)
//---------------------------------------------------------------------------------------------------------//

IF DebugSN = "S"
Info("POINT",GloRotaEncode,"",XmlResultado)
END

//Nao deve remover o acento antes do endecode
XmlResultado = WS_RemoveAcentos(XmlResultado) // retirou caracteres especiais
//Nao deve remover o acento antes do endecode

sXmlResultadoRetorno is string = XmlResultado

//IMPORTANTE LIMPAR O XML

XmlResultado = CEP_RemoveCaracteresRota(XmlResultado) // retirou os steps

IF DebugSN ="S" THEN
Info("Retorno XML Busca Origem",XmlResultado)
END
//Corta inicio
//////////////////////////////////////////////////////////////////////////////////////
nInicio is int = PositionOccurrence(XmlResultado,"</step>",lastRank,FromBeginning) + 7
XmlResultado = Middle(XmlResultado,nInicio,Length(XmlResultado))
XmlResultado = "<leg>"+XmlResultado

//Corta fim
nFim is int = PositionOccurrence(XmlResultado,"</leg>",firstRank,FromBeginning) + 5
XmlResultado = Middle(XmlResultado,1,nFim)
//////////////////////////////////////////////////////////////////////////////////////


IF IniOSMode() = True THEN

NoXml is string = XMLExtractString(XmlResultado,"leg")

//Endereço de Origem
GloVoceEnderecoLongo = XMLExtractString(NoXml,"start_address")
GloVoceEnderecoLongo = Capitalize(GloVoceEnderecoLongo)

//Endereço de Destino
GloDestinoEnderecoLongo = XMLExtractString(NoXml,"end_address")
GloDestinoEnderecoLongo = Capitalize(GloDestinoEnderecoLongo)

//Tempo
NoXml1 is string = XMLExtractString(NoXml,"duration")
GloTempoDestino = XMLExtractString(NoXml1,"value")
GloTempoDestinoText = XMLExtractString(NoXml1,"text")
GloTempoTaxi = GloTempoDestino

//Distancia
NoXml1 = XMLExtractString(NoXml,"distance")
GloDistanciaDestino =XMLExtractString(NoXml1,"value")
GloDistanciaDestinoText = XMLExtractString(NoXml1,"text")
GloDistanciaTaxi = GloDistanciaDestino

//Origem
NoXml1 = XMLExtractString(NoXml,"start_location")
IF Val(XMLExtractString(NoXml1,"lat")) < 0
GloVoceLatitude = XMLExtractString(NoXml1,"lat")
GloVoceLongitude = XMLExtractString(NoXml1,"lng")
END

//Destino
NoXml1 = XMLExtractString(NoXml,"end_location")
IF Val(XMLExtractString(NoXml1,"lat")) < 0 THEN
GloDestinoLatitude = XMLExtractString(NoXml1,"lat")
GloDestinoLongitude = XMLExtractString(NoXml1,"lng")
END


ELSE


//XML Leitura
XmlDoc02 is XMLDocument
XmlDoc02 = XMLOpen(XmlResultado,fromString)

//Endereço de Origem
GloVoceEnderecoLongo = XmlDoc02.leg.start_address
GloVoceEnderecoLongo = Capitalize(GloVoceEnderecoLongo)

//Endereço de Destino
GloDestinoEnderecoLongo = XmlDoc02.leg.end_address
GloDestinoEnderecoLongo = Capitalize(GloDestinoEnderecoLongo)

//Tempo
GloTempoDestino = XmlDoc02.leg.duration.value
GloTempoDestinoText = XmlDoc02.leg.duration.text
GloTempoTaxi = GloTempoDestino

//Distancia
GloDistanciaDestino = XmlDoc02.leg.distance.value
GloDistanciaDestinoText = XmlDoc02.leg.distance.text
GloDistanciaTaxi = GloDistanciaDestino

//Origem
IF XmlDoc02.leg.start_location.lat < 0
GloVoceLatitude = XmlDoc02.leg.start_location.lat
GloVoceLongitude = XmlDoc02.leg.start_location.lng
END

//Destino
IF XmlDoc02.leg.end_location.lat < 0 THEN
GloDestinoLatitude = XmlDoc02.leg.end_location.lat
GloDestinoLongitude = XmlDoc02.leg.end_location.lng
END


END

END
gbLocalizouRota = True
ELSE

GloDestinoEndereco = ""
GloDestinoEnderecoLongo = ""

GloTempoDestino = ""
GloDistanciaDestino = ""
END

END


END

IF DebugSN = "S" THEN
Info(GloRotaEncode)
Info("Origem:",GloVoceEnderecoLongo,GloVoceEndereco,"","Destino:",GloDestinoEnderecoLongo,GloDestinoEndereco,"","Tempo: "+GloTempoDestino,"Distancia: "+GloDistanciaDestino,"","Latitude Origem: "+GloVoceLatitude,"Longitute Origem: "+GloVoceLongitude,"","Latitude Destino: "+GloDestinoLatitude,"Longitude Destino: "+GloDestinoLongitude)
END

////Exemplo: Curitiba - Parana =>>> ( - )
IF CEP_QtdeOccurrence(GloVoceEnderecoLongo," - ") = 1
GloVoceEndereco = ""
GloVoceNumero = ""
GloVoceEnderecoLongo = "ERRO"
GloVoceLatitude = 0
GloVoceLongitude = 0
END
////Exemplo: Curitiba - Parana =>>> ( - )
IF CEP_QtdeOccurrence(GloDestinoEnderecoLongo," - ") = 1
GloDestinoEndereco = ""
GloDestinoNumero = ""
GloDestinoEnderecoLongo = "ERRO"
END
IF DebugSN = "S"
IF GloVoceEnderecoLongo = "ERRO" OR GloDestinoEnderecoLongo = "ERRO"
Info("Endereço inválido")
END
END

RESULT(GloVoceEnderecoLongo)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:04
Procedure CEP_RemoveCaracteresRota(LOCAL XmlResultado)

XmlResultado = Capitalize(WS_RemoveAcentos(XmlResultado))

XmlResultado = Replace(XmlResultado,"Matriz,","")

XmlResultado = Replace(XmlResultado,"Matriz","")

XmlResultado = Replace(XmlResultado,";","")

XmlResultado = Replace(XmlResultado,"@","")

XmlResultado = Replace(XmlResultado,"?","")

XmlResultado = Replace(XmlResultado,"#","")

XmlResultado = Replace(XmlResultado,"`","")

XmlResultado = Replace(XmlResultado,"~","")

XmlResultado = Replace(XmlResultado,"{","")

XmlResultado = Replace(XmlResultado,"}","")

//1234567890123456789012345678901234567890
//<?xml version="1.0" encoding="UTF-8"?>
Resultado is string = Lower(XmlResultado)
IF PositionOccurrence(Resultado,"<?xml version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,39,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<?Xml version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,39,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<?Xml Version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,39,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<?XML Version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,39,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<?XML VERSION",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,39,Length(XmlResultado))
END

IF PositionOccurrence(Resultado,"<xml version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,37,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<Xml version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,37,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<Xml Version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,37,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<XML Version",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,37,Length(XmlResultado))
END
IF PositionOccurrence(Resultado,"<XML VERSION",firstRank,FromBeginning) > 0
XmlResultado = Middle(XmlResultado,37,Length(XmlResultado))
END

RESULT(XmlResultado)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:04
Procedure CEP_HTTPGetResult()

// Variable
bufResHTTP is Buffer


// Retrieves the result of the query
bufResHTTP = HTTPGetResult(httpResult)

// Result in UTF8 em iOS Apple

IF StringCount(bufResHTTP, “ISO-8859-1, IgnoreCase) = 0 THEN
bufResHTTP = UTF8ToString(bufResHTTP)
ELSE
bufResHTTP = AnsiToUnicode(bufResHTTP)
END

RESULT bufResHTTP
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:04
Procedure CEP_BuscarEndereco(Endereco, Numero)

GloEnderecoOK is boolean = False
LocEndereco is array of string
EnderecoInicial is string = ""

IF Numero = 0 OR Numero = "" OR IsNumeric(Numero) = False THEN
Numero = 10
END
EnderecoInicial = Endereco +"-Curitiba-PR-Brasil"
LocEndereco = CEP_FuncaoBuscarEndereco(EnderecoInicial,Numero,"","")

IF ArrayCount(LocEndereco) > 0 THEN
EDT_EnderecoOrigem = LocEndereco[1]
END

RESULT(GloEnderecoOK)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:04
Procedure CEP_QtdeOccurrence(LOCAL Palavra, LOCAL Ocorrencia)

nQtde, Total, TotalOcorrencia, x is int = 0

Total = Length(Palavra)
TotalOcorrencia = Length(Ocorrencia)

LOOP (Total)
x += 1
IF Middle(Palavra,x,TotalOcorrencia) = Ocorrencia
nQtde += 1
END
END

RESULT(nQtde)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:05
Procedure CEP_FuncaoBuscarEndereco(sEndereco, sNumero, sCidade, sUF)

//endereco = "Jose gulin"
//Numero = 500
//cidade = "curitiba"
//UF ="PR"
sEnderecoLongo is string
arrResult1 is array of strings
EnderecoInicial, sEnderecoLocalizadoLongo is string = ""

IF sNumero = 0 OR sNumero = "" OR IsNumeric(sNumero) = False THEN
sNumero = 10
END

IF sCidade = "" THEN
sCidade = "Curitiba"
END

IF UF = "" THEN
UF = "PR"
END

IF sNumero = 0 OR sNumero = "" OR IsNumeric(sNumero) = False THEN
sNumero = 10
END

IF sCidade = "" THEN
sCidade = "Curitiba"
END

IF sUF = "" THEN
sUF = "PR"
END


//Busca Alias + Rota

EnderecoInicial = sEndereco +"-"+ sNumero +"-"+ sCidade +"-"+ sUF +"-Brasil"

sEnderecoLongo = CEP_Rota(EnderecoInicial,EnderecoInicial,"")

IF sEnderecoLongo <> "" AND sEnderecoLongo <> "ERRO" THEN

arrResult1 = CEP_ExtrairEndereco(sEnderecoLongo)

ELSE
ArrayDeleteAll(arrResult1)

END

RESULT(arrResult1)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:06
Procedure CEP_ExtrairEndereco(endereco)

// endereco = "condominio edificio - rua sanito rocha, 261 - cristo rei, curitiba - pr, 800050-380, brasil"

sRua, sNumero, sBairro, sCidade, sEstado, sPais, sCep is string = ""

IF endereco <> ""

endereco = Replace(endereco,"State Of ", "",IgnoreCase)

//Separador - das 3 colunas
arrSplitArray is array of strings
StringToArray(endereco, arrSplitArray," - ")
//FOR EACH string sExtracColunn, nRank of endereco SEPAREE by " - "
//
//add(arrSplitArray, sExtracColunn)
//
//END
IF ArrayCount(arrSplitArray) = 4

//Separador , da rua e numero
arrSplitRuaNumeroArray is array of strings
StringToArray(arrSplitArray[2], arrSplitRuaNumeroArray,",")


IF ArrayCount(arrSplitRuaNumeroArray) = 1

sRua = arrSplitRuaNumeroArray[1];

sNumero = "0";

ELSE IF ArrayCount(arrSplitRuaNumeroArray) = 2

sRua = arrSplitRuaNumeroArray[1];

IF PositionOccurrence(arrSplitRuaNumeroArray[2],"-",firstRank) > 0 THEN

arrSplitNumeroArray is array of strings
StringToArray(arrSplitRuaNumeroArray[2], arrSplitNumeroArray,"-")

WHEN EXCEPTION IN
Media is int = (Val(arrSplitNumeroArray[1]) + Val(arrSplitNumeroArray[2])) / 2
DO
sNumero = 0
ELSE
sNumero = Media
END


ELSE

sNumero = arrSplitRuaNumeroArray[2];

END

END


/////
//Separador , do bairro e cidade
arrSplitBairroCidadeArray is array of strings
StringToArray(arrSplitArray[3], arrSplitBairroCidadeArray,",")

IF ArrayCount(arrSplitBairroCidadeArray) = 2

sBairro =arrSplitBairroCidadeArray[1];
sCidade = arrSplitBairroCidadeArray[2];

ELSE IF (ArrayCount(arrSplitBairroCidadeArray) = 3)

sBairro = arrSplitBairroCidadeArray[1];
sCidade = arrSplitBairroCidadeArray[3];

ELSE

sBairro = "";
sCidade = "";

END

//Separador , do bairro e cidade
arrSplitEstadoCepPaisArray is array of strings
StringToArray(arrSplitArray[4], arrSplitEstadoCepPaisArray,",")

IF ArrayCount(arrSplitEstadoCepPaisArray) = 2

sEstado = arrSplitEstadoCepPaisArray[1];
sPais = arrSplitEstadoCepPaisArray[2];
sCep = ""

ELSE IF ArrayCount(arrSplitEstadoCepPaisArray)= 3

sEstado = arrSplitEstadoCepPaisArray[1];
sCep = arrSplitEstadoCepPaisArray[2];
sPais = arrSplitEstadoCepPaisArray[3];
ELSE

sEstado = ""
sCep = ""
sPais = ""

END
ELSE IF ArrayCount(arrSplitArray) = 3

//Separador , da rua e numero
arrSplitRuaNumeroArray is array of strings
StringToArray(arrSplitArray[1], arrSplitRuaNumeroArray,",")


IF ArrayCount(arrSplitRuaNumeroArray) = 1

sRua = arrSplitRuaNumeroArray[1];

sNumero = "0";

ELSE IF ArrayCount(arrSplitRuaNumeroArray) = 2

sRua = arrSplitRuaNumeroArray[1];

IF PositionOccurrence(arrSplitRuaNumeroArray[2],"-",firstRank) > 0 THEN

arrSplitNumeroArray is array of strings
StringToArray(arrSplitRuaNumeroArray[2], arrSplitNumeroArray,"-")

WHEN EXCEPTION IN
Media is int = (Val(arrSplitNumeroArray[1]) + Val(arrSplitNumeroArray[2])) / 2
DO
sNumero = 0
ELSE
sNumero = Media
END


ELSE

sNumero = arrSplitRuaNumeroArray[2];

END

END


/////
//Separador , do bairro e cidade
arrSplitBairroCidadeArray is array of strings
StringToArray(arrSplitArray[2], arrSplitBairroCidadeArray,",")

IF ArrayCount(arrSplitBairroCidadeArray) = 2

sBairro =arrSplitBairroCidadeArray[1];
sCidade = arrSplitBairroCidadeArray[2];

ELSE IF (ArrayCount(arrSplitBairroCidadeArray) = 3)

sBairro = arrSplitBairroCidadeArray[1];
sCidade = arrSplitBairroCidadeArray[3];

ELSE

sBairro = "";
sCidade = "";

END

//Separador , do bairro e cidade
arrSplitEstadoCepPaisArray is array of strings
StringToArray(arrSplitArray[3], arrSplitEstadoCepPaisArray,",")

IF ArrayCount(arrSplitEstadoCepPaisArray) = 2

sEstado = arrSplitEstadoCepPaisArray[1];
sPais = arrSplitEstadoCepPaisArray[2];
sCep = ""

ELSE IF ArrayCount(arrSplitEstadoCepPaisArray)= 3

sEstado = arrSplitEstadoCepPaisArray[1];
sCep = arrSplitEstadoCepPaisArray[2];
sPais = arrSplitEstadoCepPaisArray[3];
ELSE

sEstado = ""
sCep = ""
sPais = ""

END
ELSE IF ArrayCount(arrSplitArray) = 2

arrSplitRuaCidadeArray is array of strings
StringToArray(arrSplitArray[1], arrSplitRuaCidadeArray,",")

sNumero = "0";
IF ArrayCount(arrSplitRuaCidadeArray) = 1

sRua = arrSplitRuaCidadeArray[1];



ELSE IF ArrayCount(arrSplitRuaCidadeArray) = 2

sRua = arrSplitRuaCidadeArray[1];
sCidade = arrSplitRuaCidadeArray[2];

ELSE IF ArrayCount(arrSplitRuaCidadeArray) = 3

sRua = arrSplitRuaCidadeArray[1];
//--
IF PositionOccurrence(arrSplitRuaCidadeArray[2],"-",firstRank) > 0 THEN

arrSplitNumeroArray is array of strings
StringToArray(arrSplitRuaCidadeArray[2], arrSplitNumeroArray,"-")

WHEN EXCEPTION IN
Media is int = (Val(arrSplitNumeroArray[1]) + Val(arrSplitNumeroArray[2])) / 2
DO
sNumero = 0
ELSE
sNumero = Media
END


ELSE

sNumero = arrSplitRuaCidadeArray[2];

END



//--
sCidade = arrSplitRuaCidadeArray[3];
END


arrSplitEstadoCepPaisArray is array of strings
StringToArray(arrSplitArray[2], arrSplitEstadoCepPaisArray,",")
IF ArrayCount(arrSplitEstadoCepPaisArray) = 2

sEstado = arrSplitEstadoCepPaisArray[1];
sPais = arrSplitEstadoCepPaisArray[2];
sCep = ""

ELSE IF ArrayCount(arrSplitEstadoCepPaisArray)= 3

sEstado = arrSplitEstadoCepPaisArray[1];
sCep = arrSplitEstadoCepPaisArray[2];
sPais = arrSplitEstadoCepPaisArray[3];
ELSE

sEstado = ""
sCep = ""
sPais = ""

END

END

//Replace Estado
sEstado = Capitalize(Clip(sEstado))
IF sEstado <> ""

IF sEstado = "Acre" THEN
sEstado = "AC"
ELSE IF sEstado = "Alagoas" THEN
sEstado = "AL"
ELSE IF sEstado = "Amazonas" THEN
sEstado = "AM"
ELSE IF sEstado = "Amapa" THEN
sEstado = "AP"
ELSE IF sEstado = "Bahia" THEN
sEstado = "BA"
ELSE IF sEstado = "Ceara" THEN
sEstado = "CE"
ELSE IF sEstado = "Distrito Federal" THEN
sEstado = "DF"
ELSE IF sEstado = "Espirito Santo" THEN
sEstado = "ES"
ELSE IF sEstado = "Goias" THEN
sEstado = "GO"
ELSE IF sEstado = "Maranhao" THEN
sEstado = "MA"
ELSE IF sEstado = "Minas Gerais" THEN
sEstado = "MG"
ELSE IF sEstado = "Mato Grosso do Sul" THEN
sEstado = "MS"
ELSE IF sEstado = "Mato Grosso" THEN
sEstado = "MT"
ELSE IF sEstado = "Parana" THEN
sEstado = "PR"
ELSE IF sEstado = "Para" THEN
sEstado = "PA"
ELSE IF sEstado = "Paraiba" THEN
sEstado = "PB"
ELSE IF sEstado = "Pernambuco" THEN
sEstado = "PE"
ELSE IF sEstado = "Piaui" THEN
sEstado = "PI"
ELSE IF sEstado = "Rio de Janeiro" THEN
sEstado = "RJ"
ELSE IF sEstado = "Rio Grande DO Norte" THEN
sEstado = "RN"
ELSE IF sEstado = "Rondonia" THEN
sEstado = "RO"
ELSE IF sEstado = "Roraima" THEN
sEstado = "RR"
ELSE IF sEstado = "Rio Grande DO Sul" THEN
sEstado = "RS"
ELSE IF sEstado = "Santa Catarina" THEN
sEstado = "SC"
ELSE IF sEstado = "Sergipe" THEN
sEstado = "SE"
ELSE IF sEstado = "Sao Paulo" THEN
sEstado = "SP"
ELSE IF sEstado = "Tocantins" THEN
sEstado = "TO"
END

END

END
arrResult is array of strings

Add(arrResult, Capitalize(Clip(sRua)))
Add(arrResult, Clip(sNumero))
Add(arrResult, Capitalize(Clip(sBairro)))
Add(arrResult, Capitalize(Clip(sCidade)))
Add(arrResult, Upper(Clip(sEstado)))
Add(arrResult, Clip(sCep))
Add(arrResult, Capitalize(Clip(sPais)))


//Info(arrResult[1],arrResult[2],arrResult[3],arrResult[4],arrResult[5],arrResult[6],arrResult[7])


RESULT arrResult
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:06
Procedure ValidaCampos()

Campos is string = ""

ok0, ok1 is boolean = False

IF EDT_EnderecoOrigem = "" AND EDT_NumOrigem = 0
EDT_EnderecoOrigem..BrushColor = LightRed
EDT_NumOrigem..BrushColor = LightRed
Campos += " Endereço e Número de Origem; "
ok0 = False
ELSE
EDT_EnderecoOrigem..BrushColor = White
EDT_NumOrigem..BrushColor = White
ok0 = True
END

IF ok0 = False OR ok1 = False
ToastDisplay("Campos obrigatorios não foram preenchidos: "+Campos,toastShort,vaMiddle,haCenter)
RETURN
END
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 août 2015 - 23:08
:merci:
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 06 août 2015 - 10:57
Bonjour Eric,

Je ne comprends pas le code complexe indiqué dans ce post par M.BOLLER !

quelques lignes de codes suffisent : http://doc.windev.com/fr-FR/…

Cela fonctionne parfaitement sur Webev mais je fais quand même l'opération inverse pour afficher une carte d'après ces coordonnées.

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 06 août 2015 - 10:59
Bonjour,

Merci beaucoup !

Entre temps, j'ai découvert qu'en utilisant la seconde syntaxe (avec le résultat est de type boolean et un tableau d'adresses), la boite de dialogue ne s'ouvrait plus.

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 06 août 2015 - 11:02
Bonjour François,

J'ai solutionné ce soucis entre temps. Cependant, je ne peux pas utiliser GglAdresseVersCoordonnées car n'existe pas sur android.

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 06 août 2015 - 13:35
Rebonjour,

Sinon il y a toujours la possibilité de l'écrire dans une procédure globale en Webdev et de le déployer puis de l'utiliser comme Webservice.
J'envoie des Emails de cette manière sous Android.

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Membre enregistré
637 messages
Popularité : +36 (36 votes)
Posté le 07 août 2015 - 10:18
Bonjour François,

Merci. C'est une solution en effet et je n'y avais pas pensé. Pourtant j'envoie aussi des emails sous android selon cette méthode...

Cordialement,
Eric.

--
Eric DELATTRE
http://www.yoosite.fr