PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → GPS - Distance Between 2 Pontos - Distancia Entre 2 Pontos
GPS - Distance Between 2 Pontos - Distancia Entre 2 Pontos
Débuté par adrianoboller, 24 nov. 2014 12:55 - Aucune réponse
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 24 novembre 2014 - 12:55
Procedure GPS_DistanciaEntre2Pontos(LOCAL ControleMapa, LOCAL LatitudePontoA, LOCAL LongitudePontoA, LOCAL LatitudePontoB, LOCAL LongitudePontoB, LOCAL MinhaPosicaoBAtualSN, LOCAL Metrica, LOCAL Msg, LOCAL WindowSN)


Retorno is string = ""

IF ControleMapa = "" THEN
ControleMapa = gloControleMapa
END

IF GPSStatus() = gpsEnabled OR GPSStatus() = gpsAvailable THEN

pos1 is geoPosition
pos1..Latitude = LatitudePontoA
pos1..Longitude = LongitudePontoA

pos2 is geoPosition
IF MinhaPosicaoBAtualSN = "S"
pos2 = GPSGetPosition()
ELSE
pos2..Latitude = LatitudePontoB
pos2..Longitude = LongitudePontoB
END

Distancia is real = 0

IF Metrica <> "" THEN
IF Metrica = "Kilometro" THEN
Distancia = geoDistance(pos1, pos2,geoKilometer)
ELSE IF Metrica = "Metro" THEN
Distancia = geoDistance(pos1, pos2,geoMeter)
ELSE IF Metrica = "Milhas" THEN
Distancia = geoDistance(pos1, pos2,geoMile)
END
ELSE
Distancia = geoDistance(pos1, pos2)
END

IF Msg <> "" AND WindowSN = "S" THEN
Retorno = Msg + " " + Distancia + " " + Metrica
Info(Retorno)
ELSE IF Msg <> "" AND WindowSN <> "S" THEN
Retorno = Msg + " " + Distancia + " " + Metrica
ELSE IF Msg = "" AND WindowSN <> "S" THEN
Retorno = Distancia + " " + Metrica
END

ok = MapDisplayPosition(ControleMapa, pos2)

IF ok = True THEN
IF WindowSN = "S" THEN
Info("Posição detectada")
END
ELSE
IF WindowSN = "S" THEN
Info("Posição não foi detectada")
Retorno = "Erro GPS01!"
END
END

ELSE IF GPSStatus() = gpsDisabled THEN

Info("GPS Desabilitado!")

ELSE IFGPSStatus() = gpsOffService OR GPSStatus() = gpsUnavailable OR GPSStatus() = gpsError THEN

Info("Região sem serviço de GPS",ErrorInfo())

END

RESULT(Retorno)