|
|
|
|
- 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
- ¿Cuándo usar cada función?
- Funciones disponibles según las plataformas
- Tabla de resumen
Gestión de la geolocalización y el GPS
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.
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.
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. 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. ¿Cuándo usar cada función? | | | | Función | ¿Cuándo usarla? | Precisión | El consumo de energía |
---|
geoTrackingXXX | Seguimiento 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 | GPSFollowMovement | Seguimiento permanente de los cambios de ubicación cuando la aplicación está en primer plano. | Precisión según GPSInitParameter. | Consumo según GPSInitParameter. | GPSDetectPosition | Notification de la proximidad de un lugar determinado cuando la aplicación está en primer plano. | Precisión según GPSInitParameter. | Consumo según GPSInitParameter. | GPSGetPosition | La 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. | GPSLastPosition | Inmediatamente 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):
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|