PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Trabalhando com GPS
WX - Trabalhando com GPS
Iniciado por Boller, mar., 13 2021 6:16 PM - Sem resposta
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em março, 13 2021 - 6:16 PM
Prezados,

Precisa da APIkey do Google do console de desenvolvimento de projetos web que habilita o google maps funcionar na aplicacao deve ser gerado, para isso deve ter uma conta de desenvolvedor do google e a abaixo esta as Procedures necessárias:





// Summary: <specify the procedure action>
// Syntax:
//GPS_Init (<msg>)
//
// Parameters:
// msg:

// For instance:
Procedure GPS_Init(msg)

IF GPSStatus() <> gpsEnabled THEN
IF msg = 1
ToastDisplay("O seu GPS está desativado.",toastShort,vaMiddle,haCenter)
END
ELSE IF GPSStatus() = gpsEnabled OR GPSStatus() = gpsAvailable


IF msg = 1 THEN
GPSInitParameter(gpsSatellite,gpsDirection+gpsEnergyLow+gpsPrecisionLow)
GPSGetPosition(300,"Inicializando GPS...")
ELSE
GPSGetPosition(300,"Inicializando GPS...")
END

<Compile IF Configuration="Android application">
IF (grlatitude = "" AND grlongitude = "") OR (grlatitude = 0 AND grlongitude = 0) THEN
ToastDisplay("Inicializando GPS...",toastShort,vaMiddle,haCenter)
END
<END>

GPSFollowMovement(GPS_LatitudeLongitudeAtual, 300)

END



// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] GPS_LatitudeLongitudeAtual (<MyPosition>)
//
// Parameters:
// MyPosition:

// For instance:
Procedure GPS_LatitudeLongitudeAtual(MyPosition)

//verifica se esta em zero a latitude e longitude
IF MyPosition..Latitude = 0 AND MyPosition..Longitude = 0 THEN

MyPosition = GPSGetPosition()

MultitaskApp(300)

IF MyPosition..Latitude = 0 AND MyPosition..Longitude = 0 THEN
GPS_UltimaPosicao()
MyPosition..Latitude = grlatitude
MyPosition..Longitude = grlongitude
END

END

//Gravar
HReset(T001_Gps_Posicoes)

T001_Gps_Posicoes.T001_Usuario = 1
T001_Gps_Posicoes.T001_DataHora = DateSys()+TimeSys()
T001_Gps_Posicoes.T001_Latitude = MyPosition..Latitude
T001_Gps_Posicoes.T001_Longitude = MyPosition..Longitude

HAdd(T001_Gps_Posicoes)


gpsPosicaoAtual..Latitude = MyPosition..Latitude
gpsPosicaoAtual..Longitude = MyPosition..Longitude

RESULT(MyPosition)




// Summary: <specify the procedure action>
// Syntax:
// GPS_UltimaPosicao ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
Procedure GPS_UltimaPosicao()

HReset(T001_Gps_Posicoes)

IF HReadSeekLast(T001_Gps_Posicoes,T001_Usuario,1,hKeepFilter) = True

grlatitude = T001_Gps_Posicoes.T001_Latitude
grlongitude = T001_Gps_Posicoes.T001_Longitude

ELSE

grlatitude = -27.711235
grlongitude = -54.702995

END



// Summary: <specify the procedure action>
// Syntax:
//MultitaskApp (<nTempo> is int)
//
// Parameters:
// nTempo (int):

// For instance:
Procedure MultitaskApp(nTempo is int)

IF nTempo = 0 THEN
nTempo = 100
END

<Compile IF Configuration="Android application">

Multitask(nTempo)

<END>


<Compile IF Configuration="iOS application">

nTempo = nTempo * -1
Multitask(nTempo)

<END>



##################################
Assim que usei no ultimo projeto que eu fiz
##################################

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/