AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de geolocalización
  • Presentación
  • Implementación de la gestión GPS
  • Comprobación de si el GPS está habilitado
  • Recibir una notificación cuando cambie el estado del GPS
  • Seguimiento de la posición
  • Terminar el uso de las funciones GPS
  • Implementar el seguimiento de la geolocalización
  • Presentación
  • Principio y aplicación
  • Funcionamiento según el modo de uso de la aplicación
  • ¿Cuándo usar cada función?
  • Funciones disponibles según las plataformas
  • Tabla de resumen
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Gestión de la geolocalización y el GPS
Presentación
WINDEV Mobile y WEBDEV le permiten explotar la geolocalización y las características GPS que se encuentran en los dispositivos móviles y los navegadores.
Universal Windows 10 AppAndroidiPhone/iPadIOS WidgetMac Catalyst En las aplicaciones Phone, puede:
  • La información de get sobre la última ubicación conocida del dispositivo.
  • Solicitar que se le notifique cuando el dispositivo se acerque a un área específica.
  • Averiguar la ubicación actual del dispositivo.
  • Recuperar un Address.
  • ...
AndroidiPhone/iPadIOS WidgetMac Catalyst Observaciones:
WEBDEV - Código Navegador En los sitios Webtiene la posibilidad de interactuar con las funciones GPS del dispositivo, si están disponibles (dispositivo móvil en la mayoría de los casos).. Puede recuperar o rastrear una ubicación en un sitio web que se muestra en un dispositivo móvil.
Atención: La geolocalización sólo está disponible en ciertos navegadores modernos:
  • FireFox a partir de la versión 3.5,
  • Cromo de la versión 5.0.342.1,
  • Opera a partir de la versión 10.6,
  • Safari a partir de la versión 5.0.
Durante la llamada a una función de geolocalización, el navegador solicita una autorización de localización.
Implementación de la gestión GPS

Comprobación de si el GPS está habilitado

Para comprobar si el GPS está activado, basta con utilizar GPSStatus.
Ejemplo:
// Is the GPS enabled?
IF GPSStatus() = gpsEnabled THEN
Error("The GPS cannot operate.", ...
"It must be enabled to access this application.")
EndProgram()
END

Recibir una notificación cuando cambie el estado del GPS

Para ser notificado cuando el estado del GPS cambia, simplemente llame a GPSStatus y especifique el nombre del procedimiento que manipular el estado actual del GPS.
Ejemplo:
GPSStatus(_ChangeOfGPSStatus)
El código del procedimiento es el siguiente:
PROCEDURE _ChangeOfGPSStatus(Status)
 
IF CurrentStatus = Status THEN RETURN
 
CurrentStatus = Status
 
EndTimerSys(TIMER_RETRIEVAL)
 
SWITCH Status
CASE gpsEnabled
// The provider was enabled by the user.
STC_Status = "GPS enabled"
CASE gpsDisabled
// The provider was disabled by the user.
STC_Status = "GPS disabled"
CASE gpsOffService
// The provider is off service.
STC_Status = "GPS off service"
CASE gpsUnavailable
// The provider is temporarily unavailable.
STC_Status = "GPS unavailable"
CASE gpsAvailable
// The provider is available.
STC_Status = "GPS available"
// Requests location tracking with a maximum time between two calls to
// GPSFollowMovement(_GetLocation, 1000)
OTHER CASE
END
En esta Procedure, si el GPS está activado, se utiliza un Procedure específico para el seguimiento del dispositivo.
WEBDEV - Código Navegador Esta funcionalidad no está disponible.

Seguimiento de la posición

Para rastrear la ubicación del dispositivo, simplemente utilice GPSFollowMovement y especifique el nombre del procedimiento que manipular los cambios de ubicación.
Ejemplo:
GPSFollowMovement(_GetLocation, 1000)
El código de la Procedure puede ser el siguiente:
PROCEDURE _GetLocation(MyLocation)
 
// Update the information about the location
// Latitude and longitude
STC_Latitude = StringBuild("Latitude: %1", MyLocation.Latitude)
STC_Longitude = StringBuild("Longitude: %1", MyLocation.Longitude)
 
// Speed
IF MyLocation.SpeedValid = True THEN
STC_Speed = StringBuild("Speed: %1 m/s", MyLocation.Speed)
IMG_SPEED_VALIDITY = IMG_OK
ELSE
STC_Speed = "Speed: N/A"
IMG_SPEED_VALIDITY = IMG_NOTOK
END
 
// Altitude
IF MyLocation.AltitudeValid = True THEN
STC_Altitude = StringBuild("Altitude: %1 m", MyLocation.Altitude)
IMG_ALTITUDE_VALIDITY = IMG_OK
ELSE
STC_Altitude = "Altitude: N/A"
IMG_ALTITUDE_VALIDITY = IMG_NOTOK
END
 
// Direction
IF MyLocation.DirectionValid = True THEN
STC_Direction = StringBuild("Direction: %1 ° E", MyLocation.Direction)
IMG_DIRECTION_VALIDITY = IMG_OK
ELSE
STC_Direction = "Direction: N/A"
IMG_DIRECTION_VALIDITY = IMG_NOTOK
END
 
STC_Last_update = StringBuild("Last update on %1 at %2.", ...
DateToString(MyLocation.MeasurementDate.Date), ...
TimeToString(MyLocation.MeasurementDate.Time))
STC_Last_update.Visible = True
En este código, MiLugar es un geoPosition Variable. Las propiedades de este tipo de Variable se utilizan para averiguar las características de la ubicación.
WEBDEV - Código Navegador El WLanguage Procedure utilizado requiere parámetros específicos.

Terminar el uso de las funciones GPS

Dependiendo de los ajustes seleccionados y de la frecuencia de llamada, las funciones de geolocalización pueden consumir muchos recursos del dispositivo (batería, ancho de banda, etc.). se debe llamar a GPSEnd cuando las funciones de localización ya no son utilizadas por la aplicación.
WEBDEV - Código Navegador Esta funcionalidad no está disponible.
AndroidiPhone/iPadIOS WidgetMac Catalyst
Implementar el seguimiento de la geolocalización

Presentación

En un dispositivo móvil, es posible que necesite rastrear la ubicación del usuario incluso cuando la aplicación está cerrada o en el Background.
Deberías ser capaz de set hasta el seguimiento utilizando los mínimos recursos posibles, especialmente cuando se trata de la batería. Esto puede lograrse reduciendo la precisión, en comparación con el seguimiento GPS estándar.

Principio y aplicación

Para gestionar el seguimiento de la localización:
  1. Habilitar el seguimiento de la ubicación con geoTrackingEnable.
  2. Definir la Procedure que se llama al cambiar la ubicación con geoTrackingProcedure. Esta función debe ser utilizada en la inicialización Process del proyecto.
Es posible:
Atención: Este seguimiento de la ubicación tiene una baja precisión. Los eventos se envían sólo si se producen cambios significativos de ubicación y en intervalos de tiempo que superan varios minutos. A título informativo, las condiciones de envío por plataforma son las siguientes:
  • iPhone/iPadIOS WidgetMac Catalyst Los eventos relacionados con el cambio de ubicación no se envían si la ubicación no cambió por más de 500 metros, o si el tiempo de interval es menos de 5 minutos (Diciembre 2014).
  • Android Los eventos de cambio de ubicación se envían a intervalos que van desde 30 segundos a 10 minutos, dependiendo de la distancia entre las ubicaciones.
Para un seguimiento más preciso, debe utilizar GPSFollowMovement. Sin embargo, esta función:
  • requiere que se inicie la aplicación,
  • Android requiere que la aplicación esté en primer plano,
  • consume más batería.

Funcionamiento según el modo de uso de la aplicación

Si la aplicación ya está ejecutando, el Procedure dado a geoTrackingProcedure se llama automáticamente cuando se recibe una ubicación Event. Cualquier operación de aplicación puede ser realizada en esta Procedure.
Cuando la aplicación se detiene, si se recibe una ubicación Event , la aplicación se reinicia en el Background. Se ejecuta el Event de "Inicialización" del proyecto, luego el Procedure especificado en geoTrackingProcedure.
iPhone/iPadIOS WidgetMac Catalyst iOS limita las operaciones que se pueden realizar cuando se inicia la aplicación en el Background. Por lo tanto:
  • La ejecución de la operación Background no puede exceder los diez segundos.
  • No se puede abrir ninguna ventana y no se puede mostrar ninguna interfaz (sin embargo, se puede enviar un Notification).
Recordatorio: Para determinar si la aplicación se ha iniciado en segundo plano, utilice ExeInfo con la constante exeLaunch. La constante exeGeoTracking se devolverá si la aplicación se inició en el modo Background.
¿Cuándo usar cada función?
Función¿Cuándo usarla?PrecisiónEl consumo de energía
geoTrackingXXXSeguimiento permanente de los cambios de ubicación, incluso cuando la aplicación está en la Background.Alta precisión, pero la frecuencia de las notificaciones es baja y varía según el sistema. Bajo
GPSFollowMovementSeguimiento permanente de los cambios de ubicación cuando la aplicación está en primer plano.Precisión según GPSInitParameter. Consumo según GPSInitParameter.
GPSDetectPositionNotification de la proximidad de un lugar determinado cuando la aplicación está en primer plano. Precisión según GPSInitParameter. Consumo según GPSInitParameter.
GPSGetPositionLa ubicación actual de get en un momento específico cuando la aplicación está en primer plano. Puede tardar mucho, dependiendo de los alrededores (dentro de un edificio, día nublado, etc.).Precisión según GPSInitParameter. Depende del número de llamadas.
GPSLastPositionInmediatamente get la última ubicación conocida del dispositivo.Bajo consumo, ya que depende de cuándo se recuperó la última ubicación.... También depende de GPSInitParameter. Bajo consumo.
Funciones disponibles según las plataformas

Tabla de resumen

El tabla que se muestra a continuación presenta las diferentes funciones de geolocalización/GPS y las diferentes plataformas para las que están disponibles actualmente (este tabla puede evolucionar con cada versión):
Funciones
Android Android
iPhone/iPadIOS WidgetMac Catalyst iPhone/iPad
Universal Windows 10 App Aplicación universal para Windows
WEBDEV - Código Navegador Código Navegador
geoAzimuthXX
geoDistanceXXX
geoGetAddressXX
geoGetAreaXXX
geoRunAppXX
geoTrackingDisableXX
geoTrackingEnableXX
geoTrackingProcedureXX
geoTrackingStatusXX
GPSDetectPositionXX
GPSEndXXX
GPSFollowMovementXXXX
GPSGetPositionXXXX
GPSInfoXX
GPSInitParameterXXX
GPSLastPositionXXXX
GPSStatusXXXX
GPSStopDetectionXX
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
video gpsgetposition
https://youtu.be/4MqAx_qiFts

https://windevdesenvolvimento.blogspot.com/2019/01/dicas-1987-windev-mobile-dicas-14.html


amarildo
16 01 2019
Endereço das coordenadas
https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/519-busca-endereco-rota-endereco-das-coordendas-523/read.awp?hl=enderecodascoordenadas

https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/2875-informatica-exemplo-google-maps-com-json-retornando-distancia/read.awp?lastview
BOLLER
10 11 2018

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local