PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Example MapAddItinerary to Windev Mobile < version 20
Example MapAddItinerary to Windev Mobile < version 20
Débuté par adrianoboller, 17 nov. 2014 12:57 - 7 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 17 novembre 2014 - 12:57
PROCEDURE WS_CEP_Rota(LOCAL Origem, LOCAL Destino, LOCAL DebugSN)

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

IF GloDebugSN = "S" THEN
DebugSN = "S"
END



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

nVirgula is int = 0

//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

//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…"

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


//Rota
IF ok = True THEN

XmlResultado is string = WS_Android_IOS_HTTPGetResult()

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

XmlResultado = WS_RemoveAcentos(XmlResultado) // retirou caracteres especiais

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(XmlResultado,"<points>",firstRank,FromBeginning)
nFinalPoint is int = PositionOccurrence(XmlResultado,"</points>",firstRank,FromBeginning)
GloRotaEncode = Middle(XmlResultado,nInicioPoint,nFinalPoint-nInicioPoint)

//if DebugSN = "S"
Info("POINT",GloRotaEncode)
//end

sXmlResultadoRecorte is string = XmlResultado

//IMPORTANTE LIMPAR O XML

XmlResultado = WS_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 IF InAndroidMode() = True


//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

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 QtdeOccurrence(GloVoceEnderecoLongo," - ") = 1
GloVoceEndereco = ""
GloVoceNumero = ""
GloVoceEnderecoLongo = "ERRO"
GloVoceLatitude = 0
GloVoceLongitude = 0
END
////Exemplo: Curitiba - Parana =>>> ( - )
IF 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 17 novembre 2014 - 12:59
ProcedureWS_Rota_DecodePoints(encoded isstring)

//WS_Rota_PlotarPontos("lsczClaqkHFcB")
//WS_Rota_PlotarPontos("tsczCh~pkHUGa@Ka@G[Eq@IuAK")
//WS_Rota_PlotarPontos("vkczCp|pkHM`DM`DI|BIzBC~@E|@E`AE`AOpECl@Ex@CbACl@Cl@IhBGlBGhBIjBIxCCr@EdB")
//WS_Rota_PlotarPontos("rfczCl|rkH|BL|BN")

encoded="lsczClaqkHFcBUGcASmAOuAKM`DW~GMzDa@rKo@hQ]~KzF\TuHHoBFeBa@c@eBgB"

//encoded ="znizCzumjH_CYoDi@}AUYCs@Q"

poly isarray ofLatLng

b,Shift,Tempresult isint=0
Index,nLen isint=0
Lat,Lng isreal

nLen=Length(encoded)

WHILE(Index<nLen)

LOOP

Index++
b=Asc(encoded[[Index]]) -63
Tempresult=BinaryOR(Tempresult,bitLeftShift(BinaryAND(b,0x1f),Shift))
Shift=Shift+5

DO WHILE(b>=0x20)

dlat isint

IFBinaryAND(Tempresult,1) <>0THEN

dlat=BinaryNOT(bitRightShift(Tempresult,1))

ELSE

dlat=bitRightShift(Tempresult,1)

END

Lat+=dlat
Shift=0
Tempresult=0

LOOP

Index++
b=Asc(encoded[[Index]]) -63
Tempresult=BinaryOR(Tempresult,bitLeftShift(BinaryAND(b,0x1f),Shift))
Shift+=5;

DOWHILE(b>=0x20)

Dlng isint

IFBinaryAND(Tempresult,1) <>0THEN

Dlng=BinaryNOT(bitRightShift(Tempresult,1))
ELSE

Dlng=bitRightShift(Tempresult,1)

END

Lng+=Dlng;
Shift=0
Tempresult=0

point is LatLng
point.Latitude=Lat/100000
point.Longitude=Lng/100000
ArrayAdd(poly,point)

END

//sTempstr is string
//FOR EACH point OF poly
//
//sTempstr = sTempstr + point.Latitude + " " + point.Longitude + CRLF
//
//
//END
////info (sTempstr)

RESULTpoly

//-------------------------------------------------------------C#

//arrSplitRuaNumeroArray is array of geoposi
//StringToArray(arrSplitArray[1], arrSplitRuaNumeroArray,",")

//IF ArrayCount(arrSplitRuaNumeroArray) = 1

////private List<LatLng> decodePoly(string encoded)
//{
//List<LatLng> poly = new List<LatLng>();
//int index = 0, len = encoded.Length;
//int lat = 0, lng = 0;
//while (index < len)
//{
//int b, shift = 0, result = 0;
//do
//{ b = encoded[index++] - 63;
//result |= (b & 0x1f) << shift;
//shift += 5;
//} while (b >= 0x20);
//int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
//lat += dlat;
//shift = 0;
//result = 0;
//do
//{
//b = encoded[index++] - 63;
//result |= (b & 0x1f) << shift;
//shift += 5;
//} while (b >= 0x20);
//int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
//lng += dlng;
//LatLng p = new LatLng((double)lat/ 100000, (double)lng / 100000);
//poly.Add(p);
//}
//return poly;
//}
>
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 17 novembre 2014 - 12:59
ProcedureWS_Rota_DistanciaEntrePontos(x1 isreal,x2 isreal,y1 isreal,y2 isreal)

Dist isreal=0

IFx1<>""ANDx2<>""ANDy1<>""ANDy2<>""THEN

Dist=Root(Power(x1-x2,2) +Power(y1-y2,2) )

ELSE

Info("Falta parametros para calcular a distancia da reta entre 2 pontos")

END


RESULT(Dist)
>
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 17 novembre 2014 - 13:00
ProcedureWS_Rota_Pitagoras(pA isreal,pB isreal,pC isreal)

ABC isreal=0

IFpA=""ANDpB<>""ANDpC<>""THEN

pA=Root(Power(pB,2) +Power(pC,2))

ABC=pA

ELSE IFpA<>""ANDpB=""ANDpC<>""THEN

pB=Root(Power(pA,2) -Power(pC,2))

ABC=pB

ELSE IFpA<>""ANDpB<>""ANDpC=""THEN

pC=Root(Power(pA,2) -Power(pB,2))

ABC=pC

END

RESULT(ABC)
>
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 17 novembre 2014 - 13:01
ProcedureWS_Rota_PlotarPontos(GoogleMapsPoint isstring)

//Market_Itinerary
//GoogleMapsPoint ="lsczClaqkHFcBUGcASmAOuAKM`DW~GMzDa@rKo@hQ]~KzF\TuHHoBFeBa@c@eBgB"
//GoogleMapsPoint = "znizCzumjH_CYoDi@}AUYCs@Q"
//GoogleMapsPoint = "lsczClaqkHFcB"
//encoded ="znizCzumjH_CYoDi@}AUYCs@Q"

gloDesenhaItinerario=True//testa itinerario

x isint=1

MapDeleteAll(WIN_Taxi62.ControleMapa)

nInicial isint=0
arryPoints isarray ofLatLng

pointA is LatLng
pointB is LatLng

arryPoints=WS_Rota_DecodePoints(GoogleMapsPoint)

WHILE(x<ArrayCount(arryPoints))

pointA=arryPoints[x]
pointB=arryPoints[x+1]
nomeMaker++
MarkerPonto..Position.Latitude=pointA.Latitude
MarkerPonto..Position.Longitude=pointA.Longitude
MarkerPonto..Image=WIN_Taxi62.IMG_Ponto
MarkerPonto..Name="Itinerary"+nomeMaker
MarkerPonto..Description="Itinerary"+nomeMaker
MapAddMarker(WIN_Taxi62.ControleMapa,MarkerPonto)
//MapDisplayPosition(WIN_Taxi62.ControleMapa,pointa)

WS_Rota_PlotarXLinhas(pointA,pointB)

x++

END

MarkerPonto..Position.Latitude=pointB.Latitude
MarkerPonto..Position.Longitude=pointB.Longitude
MarkerPonto..Image=WIN_Taxi62.IMG_Ponto
MarkerPonto..Name="Itinerary"+x
MarkerPonto..Description="Itinerary"+x
MapAddMarker(WIN_Taxi62.ControleMapa,MarkerPonto)
//MapDisplayPosition(WIN_Taxi62.ControleMapa,pointb)

MapDisplayPosition(WIN_Taxi62.ControleMapa,WS_CentroReta(arryPoints[1],pointB))
//Fim
// ---------------
//gnTotalPoints++
//MarkerPonto..Position.Latitude = PointAtual.Latitude
//MarkerPonto..Position.Longitude = PointAtual.Longitude
//MarkerPonto..Image = WIN_Taxi62.IMG_Voce
//MarkerPonto..Name = "Itinerary"+x
//MarkerPonto..Description = "Itinerary"+x
//MapAddMarker(WIN_Taxi62.ControleMapa , MarkerPonto)
//MapDisplayPosition(WIN_Taxi62.ControleMapa,PointAtual)
>
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 17 novembre 2014 - 13:02
ProcedureWS_CEP_Rota(LOCALOrigem,LOCALDestino,LOCALDebugSN)

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

IFGloDebugSN="S"THEN
DebugSN="S"
END



IFOrigem<>""ANDDestino=""THEN
Destino=Origem
END

nVirgula isint=0

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

//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 isboolean=False

IFOrigem<>""ANDDestino<>""

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 isstring="http://maps.googleapis.com/maps/api/directions/xml?origin="+Origem+"&destination="+Destino+"&sensor=false&mode=driving"

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


//Rota
IFok=TrueTHEN

XmlResultado isstring=WS_Android_IOS_HTTPGetResult()

IFPositionOccurrence(XmlResultado,"<status>OK</status>",firstRank,FromBeginning) >0ORPositionOccurrence(XmlResultado,"<status>ok</status>",firstRank,FromBeginning) >0

XmlResultado=WS_RemoveAcentos(XmlResultado)// retirou caracteres especiais

IFLength(XmlResultado) >0THEN

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

//if DebugSN = "S"
Info("POINT",GloRotaEncode)
//end

sXmlResultadoRecorte isstring=XmlResultado

//IMPORTANTE LIMPAR O XML

XmlResultado=WS_RemoveCaracteresRota(XmlResultado)// retirou os steps

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

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


IFIniOSMode() =TrueTHEN

NoXml isstring=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 isstring=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")
IFVal(XMLExtractString(NoXml1,"lat"))<0
GloVoceLatitude=XMLExtractString(NoXml1,"lat")
GloVoceLongitude=XMLExtractString(NoXml1,"lng")
END

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


ELSE IFInAndroidMode() =True


//XML Leitura
XmlDoc02 isXMLDocument
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
IFXmlDoc02.leg.start_location.lat<0
GloVoceLatitude=XmlDoc02.leg.start_location.lat
GloVoceLongitude=XmlDoc02.leg.start_location.lng
END

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


END

END

ELSE
GloDestinoEndereco=""
GloDestinoEnderecoLongo=""

GloTempoDestino=""
GloDistanciaDestino=""
END

END


END



IFDebugSN="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 =>>> ( - )
IFQtdeOccurrence(GloVoceEnderecoLongo," - ") =1
GloVoceEndereco=""
GloVoceNumero=""
GloVoceEnderecoLongo="ERRO"
GloVoceLatitude=0
GloVoceLongitude=0
END
////Exemplo: Curitiba - Parana =>>> ( - )
IFQtdeOccurrence(GloDestinoEnderecoLongo," - ") =1
GloDestinoEndereco=""
GloDestinoNumero=""
GloDestinoEnderecoLongo="ERRO"
END
IFDebugSN="S"
IFGloVoceEnderecoLongo="ERRO"ORGloDestinoEnderecoLongo="ERRO"
Info("Endereço inválido")
END
END

RESULT(GloVoceEnderecoLongo)
>
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 13 décembre 2014 - 20:12
- symbolicated crash logs - if your issue results in a crash log

Taxi62_2014-12-05-145117_Kainri.crash
Taxi62_2014-12-05-145051_Kainri.crash

Exemplo:


{"app_name":"Taxi62","app_version":"0.0.100","bundleID":"br.com.taxi62","adam_id":929108138,"os_version":"iPhone OS 8.1 (12B410)","slice_uuid":"76afe8c0-44e8-37dd-b218-35f131dd46fc","share_with_app_devs":false,"build_version":"0.0.109.0","is_first_party":false,"type":"109","name":"Taxi62"}
Incident Identifier: 0B7D2C97-ECA0-491E-A5C2-F9E13415BCBF
CrashReporter Key: c473c7e76c9ab61594dfede1e2973fe5f7549220
Hardware Model: xxx
Process: Taxi62 [12937]
Path: /private/var/mobile/Containers/Bundle/Application/065E94A0-0825-482F-8EC0-815AD368C515/Taxi62.app/Taxi62
Identifier: br.com.taxi62
Version: 0.0.100.0 (0.0.100)
Code Type: ARM (Native)
Parent Process: launchd [1]

Date/Time: 2014-12-05 14:51:17.533 -0800
Launch Time: 2014-12-05 14:50:56.080 -0800
OS Version: iOS 8.1 (12B410)
Report Version: 105

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0

Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x35273dfc __pthread_kill + 8
1 libsystem_pthread.dylib 0x352f1d33 pthread_kill + 59
2 libsystem_c.dylib 0x35213905 abort + 73
3 Taxi62 0x0038ad41 0x53000 + 3374401
4 Foundation 0x27d7cf95 __NSFireDelayedPerform + 465
5 CoreFoundation 0x2703f2a5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 13
6 CoreFoundation 0x2703ee1f __CFRunLoopDoTimer + 647
7 CoreFoundation 0x2703d06f __CFRunLoopRun + 1415
8 CoreFoundation 0x26f8b20d CFRunLoopRunSpecific + 473
9 CoreFoundation 0x26f8b01f CFRunLoopRunInMode + 103
10 GraphicsServices 0x2e32a0a5 GSEventRunModal + 133
11 UIKit 0x2a5971cd UIApplicationMain + 1437
12 Taxi62 0x000590f7 0x53000 + 24823
13 libdyld.dylib 0x351adaad start + 1

Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x352602a0 kevent64 + 24
1 libdispatch.dylib 0x351999fd _dispatch_mgr_invoke + 277
2 libdispatch.dylib 0x3518f20f _dispatch_mgr_thread + 35

Thread 2:
0 libsystem_kernel.dylib 0x352749cc __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x352eeea9 _pthread_wqthread + 789
2 libsystem_pthread.dylib 0x352eeb80 start_wqthread + 4

Thread 3:
0 libsystem_kernel.dylib 0x35273b38 __psynch_cvwait + 24
1 libsystem_pthread.dylib 0x352f03f5 _pthread_cond_wait + 517
2 libsystem_pthread.dylib 0x352f1319 pthread_cond_timedwait + 41
3 Taxi62 0x008ce73d 0x53000 + 8894269
4 Taxi62 0x008cf38b 0x53000 + 8897419
5 Taxi62 0x00600747 0x53000 + 5953351
6 Taxi62 0x00600627 0x53000 + 5953063
7 Taxi62 0x008cee53 0x53000 + 8896083
8 libsystem_pthread.dylib 0x352f0e91 _pthread_body + 137
9 libsystem_pthread.dylib 0x352f0e03 _pthread_start + 115
10 libsystem_pthread.dylib 0x352eeb8c thread_start + 4

Thread 4:
0 libsystem_kernel.dylib 0x352604f0 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x352602e5 mach_msg + 37
2 CoreFoundation 0x2703e937 __CFRunLoopServiceMachPort + 143
3 CoreFoundation 0x2703cedd __CFRunLoopRun + 1013
4 CoreFoundation 0x26f8b20d CFRunLoopRunSpecific + 473
5 CoreFoundation 0x26fd3e77 CFRunLoopRun + 95
6 CoreMotion 0x2788dedb 0x2784e000 + 261851
7 libsystem_pthread.dylib 0x352f0e91 _pthread_body + 137
8 libsystem_pthread.dylib 0x352f0e03 _pthread_start + 115
9 libsystem_pthread.dylib 0x352eeb8c thread_start + 4

Thread 5:
0 libsystem_kernel.dylib 0x352749cc __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x352eeea9 _pthread_wqthread + 789
2 libsystem_pthread.dylib 0x352eeb80 start_wqthread + 4

Thread 6:
0 libsystem_kernel.dylib 0x352749cc __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x352eeea9 _pthread_wqthread + 789
2 libsystem_pthread.dylib 0x352eeb80 start_wqthread + 4

Thread 7:
0 libsystem_kernel.dylib 0x352749cc __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x352eeea9 _pthread_wqthread + 789
2 libsystem_pthread.dylib 0x352eeb80 start_wqthread + 4

Thread 8:
0 libsystem_kernel.dylib 0x352749cc __workq_kernreturn + 8
1 libsystem_pthread.dylib 0x352eeea9 _pthread_wqthread + 789
2 libsystem_pthread.dylib 0x352eeb80 start_wqthread + 4

Thread 0 crashed with ARM Thread State (32-bit):
r0: 0x00000000 r1: 0x00000000 r2: 0x00000000 r3: 0x00000fff
r4: 0x00000006 r5: 0x376df9dc r6: 0x19131da0 r7: 0x00ec1bc8
r8: 0x376ca074 r9: 0x376df9dc r10: 0x15547e50 r11: 0x191636d0
ip: 0x00000148 sp: 0x00ec1bbc lr: 0x352f1d37 pc: 0x35273dfc
cpsr: 0x00000010

Binary Images:
0x53000 - 0xb7efff Taxi62 armv7 <76afe8c044e837ddb21835f131dd46fc> /var/mobile/Containers/Bundle/Application/065E94A0-0825-482F-8EC0-815AD368C515/Taxi62.app/Taxi62
0x1fe43000 - 0x1fe66fff dyld armv7s <b01d37db5b0d3a2ea1ccf17afc40a896> /usr/lib/dyld
0x25a88000 - 0x25afffff AGXGLDriver armv7s <1abfb2a99f85355294443c56b876339c> /System/Library/Extensions/AGXGLDriver.bundle/AGXGLDriver
0x25b0f000 - 0x25c7bfff AVFoundation armv7s <20cb3fb302c83ede8cc708d8dea2b480> /System/Library/Frameworks/AVFoundation.framework/AVFoundation
0x25c7c000 - 0x25cdafff libAVFAudio.dylib armv7s <07753e16a2e136e2bbe7937c1d2833f6> /System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib
0x25d14000 - 0x25d14fff Accelerate armv7s <3c10ee15d8363fa58b719f2abca91b06> /System/Library/Frameworks/Accelerate.framework
...
0x35302000 - 0x35302fff libunwind.dylib armv7s <30325f86e7963864ac1f6aa575608725> /usr/lib/system/libunwind.dylib
0x35303000 - 0x3531efff libxpc.dylib armv7s <dba1e85f5c4c30269b98a82d2e332ed6> /usr/lib/system/libxpc.dylib

>END
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 13 décembre 2014 - 20:15
If you are going with your mobile aplocacao not compile either he is with some code android dirt inside the EXE folder, cleaning the EXE file folder with no youAnd consiguirá most often compile without problems. But remember that this is very rare to happen.

>Caso esteja ocorrendo com sua aplocacao mobile não compilar pode ser que esteja com alguma sujeira de código android dentro da pasta EXE, limpando a pasta EXE sem nenhum arquivo voceê consiguirá na maioria das vezes compilar sem problemas. Mas lembrando que isso é muito raro de acontecer.