# GPS

Conjunto de comandos relacionados con la geolocalización en dispositivos móviles.

Son funcionales únicamente en Android y en iOS.

Se usarán los sistemas de posicionamiento habilitados en el dispositivo. Hay que tener en cuenta que si requiere más precisión, habrá que optar por el uso de satélites y que ese modo tiene las características habituales (como en cualquier aplicación que lo use en nuestro móvil):

* Al principio, puede tardar un tiempo en obtener la señal de los satélites necesarios para un buen posicionamiento.
* Usar los datos de precisión para saber si la posición obtenida se ajusta a nuestras necesidades o debemos esperar a que haya mayor precisión.
* La aplicación [Velneo vClient](https://doc.velneo.com/34/velneo-vclient) o la [aplicación personalizada en Android](https://doc.velneo.com/34/velneo-vclient/funcionalidades-especificas/instalador-personalizado-de-velneo-vclient), debe tener permisos para usar la ubicación mientras ésta esté en uso.

## **GPS: Iniciar**‌

Inicia la localización GPS del dispositivo.

**Origen de la instrucción**: cualquiera.

**‌Destino del subproceso**: ninguno.‌

### Parámetros

#### **‌Modo de GPS**

Permite indicar el modo de GPS. Los valores posibles son:

* Celdas/Wifi: para el posicionamiento hace uso de las wifi que detecta cerca.&#x20;
* Satélite: para el posicionamiento hace uso de la información de satélites GPS.
* Todos: combina las dos anteriores.

#### **Intervalo de actualización (milisegundos) (opcional)**

Nos permite establecer un intervalo de actualización de la localización. Si lo dejamos vacío o le ponemos un valor 0 el intervalo la fuente a la que se esté conectado actualizará tan a menudo como sea necesario. Dependerá directamente de la calidad de la conexión.

#### **Identificador de variable local booleana de retorno del resultado del sistema de geoposicionamiento (opcional)**

Variable local ‌que retornará si se ha conseguido posicionar (1) o no (0).

### Funcionalidad

Este comando de instrucción de proceso permite iniciar el geoposicionaimento del dispositivo.

Podemos crear una [conexión de evento](https://doc.velneo.com/34/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento) en el [marco](https://doc.velneo.com/34/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/marco) de la aplicación que se dispare cada vez que se actualice la geoposición. Para ello debemos usar la señal [geoposición actualizada](https://doc.velneo.com/34/velneo-vdevelop/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/conexion-de-evento#senal).

### Ejemplo

```
GPS: Iniciar ( Todos, 10000, BOK )
If ( !BOK )
    Mensaje ( "No se ha podido iniciar la geololcalización", Información, , )
```

## ‌GPS: Obtener última posición

‌Obtiene los datos de la última posición registrada de GPS.

**Origen de la instrucción**: cualquiera.

**‌Destino del subproceso**: ninguno.‌

### Parámetros‌

#### Identificador de variable local array numérica de retorno de longitud , latitud, altitud y dirección

Variable local de tipo array donde se retornarán los siguientes valores en las siguientes posiciones:

* Longitud \[0]
* Latitud \[1]
* Altitud\[2]
* Dirección\[3]

#### **Identificador de variable local tiempo de retorno de tiempo UTC (opcional)**

Nos permite especificar una variable local de tipo tiempo donde se retornará la fecha/hora UTC de la operación.

#### **Identificador de variable local numérica de retorno de modo de GPS (opcional)**

Variable local de tipo numérico que permite recoger el modo de GPS utilizado. Los valores posibles son:

* 0 (Todos).
* 1 (Satélite: para el posicionamiento hace uso de la información de satélites GPS).
* 2 (Celdas/Wifi).

#### **Identificador de variable local array numérica de retorno de precisión horizontal, vertical y número de satélites (opcional)**

Variable local de tipo array que permite recoger la precisión horizontal, vertical y número de satélites en las posiciones siguientes:

* Precisión horizontal \[0]
* Precisión vertical  \[1]
* Número de satélites en uso \[2]
* Número de satélites en vista \[3]
* Velocidad horizontal \[4]
* Velocidad vertical \[5]

### Funcionalidad

Este comando de instrucción de proceso permite obtener la última posición posición GPS del dispositivo.

### Ejemplo

Obtener la posición CPS de un dispositivo móvil  y mostrarlo en la aplicación de mapas:

```
GPS: Iniciar ( Todos, 1000, OK_INICIADO )
If ( OK )
    GPS: Obtener última posición ( POS, TMP, MOD, SAT )
    Set ( PLATAFORMA, getSysPlatform() )
    If ( PLATAFORMA = "ios" )
        Ejecutar documento ( "maps:" + "0,0?q=" + POS[1] +"," + POS[0], )
    Mensaje ( "Va a parar el gps", Información, , )
    If ( PLATAFORMA = "android" )
        Ejecutar documento ( "geo:0,0?q=" + POS[1] +"," + POS[0], )
    GPS: Parar
Else
    Mensaje ( "No se ha podido iniciar el GPS", Información, , )
```

## GPS: Parar

‌Detiene la localización GPS del dispositivo.

**Origen de la instrucción**: cualquiera.

**‌Destino del subproceso**: ninguno.‌

### Parámetros

No tiene

### Funcionalidad

Este comando de instrucción de proceso finaliza la localización GPS.

### Ejemplo

Obtener la posición GPS de un dispositivo iOS o Android y mostrarlo en la aplicación de mapas:

```
GPS: Iniciar ( Todos, 1000, OK_INICIADO )
If ( OK_INICIADO )
    GPS: Obtener última posición ( POS, TMP, MOD, SAT )
    Set ( PLATAFORMA, getSysPlatform() )
    If ( PLATAFORMA = "ios" )
        Ejecutar documento ( "maps:" + "0,0?q=" + POS[1] +"," + POS[0], )
    If ( PLATAFORMA = "android" )
        Ejecutar documento ( "geo:0,0?q=" + POS[1] +"," + POS[0], )
    GPS: Parar
Else
    Mensaje ( "No se ha podido iniciar el GPS", Información, , )
```

<br>

<br>
