Your SlideShare is downloading. ×
0
1Desarrollo de Aplicaciones MultiplataformaDesarrollo de Aplicaciones MóvilesSensoresBrújula, Acelerómetro, Geolocalizació...
¿Qué es una brújula?2¿Qué es un acelerómetro?¿Qué es un (instrumento) GPS?
¿Qué es una brújula y para qué sirve?3Instrumento que permitedeterminar la orientación conrespecto a la superficieterrestr...
¿Qué es un GPS y para qué sirve?4Sistema Global de Navegaciónpor Satélite que nos permitefijar a escala mundial laposición...
¿Manos a la obra?5
Emulación de sensores12¡Para Android Nativo!Centrado en BlackberryPoco soporteErrores. Pobre emulaciónNo es trivial emular...
BrújulaInstrumento que permitedeterminar la orientación conrespecto a la superficie terrestre, através de una aguja que in...
Opcionesfrequency (Number): Frecuencia a la que se calculan los grados de orientación en milisegundos (100)filter (Number)...
EJERCICIO 1:1. Descargar e importar el proyecto “TestBrujula”2. Programar la función startWatch() para que recoja valores ...
AcelerómetroSensor que mide: los cambiosinducidos por fuerzas gravitatoriasy la aceleración (o la aceleraciónbajo el efect...
Obtiene la aceleración de los ejes x, y, z; y eltimestamp.Obtiene la aceleración (x,y,z) y el timestampen un intervalo reg...
EJERCICIO 1:1. Descargar e importar el proyecto “TestAcelerometro”2. Programar la función startWatch() para que recojavalo...
GeolocalizaciónNos permite la posición de unobjeto en la tierra, mediante el usode GPS y señales de red(WiFi, RFID, Blueto...
function onSuccess(position) {alert(‘Latitud:  + position.coords.latitude);};OpcionesenableHighAccuracy (Boolean): Especif...
EJERCICIO 1:1. Descargar e importar el proyecto “TestGeoLoc”.2. Programar la función getPosition() para que recoja valores...
¿Y si probamos a mostrar la posición en un mapa de google?var point = new google.maps.LatLng(position.coords.latitude, pos...
Reconocimiento de actividadesAplicaciones de Realidad Aumentada17
18SensoresBrújula, Acelerómetro, GeolocalizaciónJesús Fontecha Diezma
Upcoming SlideShare
Loading in...5
×

Brújula, Acelerómetro y Geolocalización con PhoneGap (Básico)

7,063

Published on

Explicación básica del manejo de la brújula, el acelerómetro y los mecanismos de geolocalización del smartphone utilizando PhoneGap (Apache Cordova).

4 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,063
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
75
Comments
4
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Brújula, Acelerómetro y Geolocalización con PhoneGap (Básico)"

  1. 1. 1Desarrollo de Aplicaciones MultiplataformaDesarrollo de Aplicaciones MóvilesSensoresBrújula, Acelerómetro, GeolocalizaciónJesús Fontecha Diezma
  2. 2. ¿Qué es una brújula?2¿Qué es un acelerómetro?¿Qué es un (instrumento) GPS?
  3. 3. ¿Qué es una brújula y para qué sirve?3Instrumento que permitedeterminar la orientación conrespecto a la superficieterrestre, a través de unaaguja que indica la direccióndel norte magnético.¡Giróscopo!• Desventaja• ¡Alteraciones magnéticas!¿Qué es un acelerómetro y para qué sirve?Sensor que mide: los cambiosinducidos por fuerzasgravitatorias y la aceleración(o la aceleración bajo el efectode la gravedad).MEMSMicroelectromechanical Systems
  4. 4. ¿Qué es un GPS y para qué sirve?4Sistema Global de Navegaciónpor Satélite que nos permitefijar a escala mundial laposición de un objeto, unapersona, un vehículo o unanave.Integración de sensoresGPS ¡El GPS es el origende los datos!¿Y si el origen es la web?Geolocalización
  5. 5. ¿Manos a la obra?5
  6. 6. Emulación de sensores12¡Para Android Nativo!Centrado en BlackberryPoco soporteErrores. Pobre emulaciónNo es trivial emular la aplicación3Emulador AndroidAplicaciones de simulaciónEmulador “online”4Móvil real6
  7. 7. BrújulaInstrumento que permitedeterminar la orientación conrespecto a la superficie terrestre, através de una aguja que indica ladirección del norte magnético.Obtiene la orientación en grados (0° a 359.99°) haciadónde apunta el dispositivo.Obtiene la orientación en grados (0° a 359.99°) haciadónde apunta el dispositivo en un intervalo regular.Interrumpe la obtención de valores de orientación.navigator.compass.getCurrentHeading(onSuccess, onError, [compassOptions]);Éxito Error Opcionesfunction onSuccess(heading) {alert(Heading: + heading.magneticHeading);};function onError( error) {alert(‘Error: + error.code);}7
  8. 8. Opcionesfrequency (Number): Frecuencia a la que se calculan los grados de orientación en milisegundos (100)filter (Number): Grados de orientación para determinar una obtención exitosa de watchHeading.function onSuccess(heading) {alert(Heading: + heading.magneticHeading);};function onError( error) {alert(‘Error: + error.code);}Propiedades• magneticHeading (Number): grados en ese instante.• trueHeading (Number): grados relativos al polo norte geográfico (valor negativo=error).• headingAccuracy (Number): grados de desviación entre polo norte magnético y real.• timestamp (milliseconds): milisegundos transcurridos desde las 0h del 01/01/1970 GMT.• code: Código de error CompassError.COMPASS_INTERNAL_ERRCompassError.COMPASS_NOT_SUPPORTED// Actualiza el valor de la brújula cada 3 segundosvar options = { frequency: 3000 };watchID = navigator.compass.watchHeading(onSuccess, onError, options);Ejemplo8
  9. 9. EJERCICIO 1:1. Descargar e importar el proyecto “TestBrujula”2. Programar la función startWatch() para que recoja valores deorientación cada 2 segundos.3. Programar las funciones onSuccess y onError.1. onSuccess: escribe en la pantalla el valor de orientación.2. onError: muestra un ‘alert’ con el código de error.4. Programar la función stopWatch() para detener la recolección dedatos de orientación.EJERCICIO 2:1. Añadir al html inicial, el icono “round_arrow_right.png”contenido en “/img”.2. Modificar la función onSuccess para rotar “arrow” segúnlos grados recogidos de la brújula cada 2 segundos.<div id=“arrow”><img src=“img/round_arrow_right.png”></div>arrow.css(‘-webkit-transform’, ‘rotate(‘ + arrowOrientation + ‘deg)’);9
  10. 10. AcelerómetroSensor que mide: los cambiosinducidos por fuerzas gravitatoriasy la aceleración (o la aceleraciónbajo el efecto de la gravedad).A tener en cuenta:• Distribución coordenadas• “estandarizado” o necesidad de calibración• Efecto Gravedad• aceleración sometida al efecto de la gravedaden la coordenada correspondiente (9,8m/s²)• Precisión• Se mide en “G”: aceleración que puedesoportar/detectar el móvil (±2G)• 0 G  Caída libre• 1G  Objeto en superficie terrestre• +1G  Montaña rusa, avión combate,…• Ruido• Variabilidad en la señal del acelerómetro• Filtrado señal 10
  11. 11. Obtiene la aceleración de los ejes x, y, z; y eltimestamp.Obtiene la aceleración (x,y,z) y el timestampen un intervalo regular.Interrumpe la obtención de valores de aceleración.navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);Éxito Errorfunction onSuccess(acceleration) {alert(Acceleration X: + acceleration.x + n +Acceleration Y: + acceleration.y + n +Acceleration Z: + acceleration.z + n +Timestamp: + acceleration.timestamp + n);};function onError() {alert(onError!);}var options = { frequency: 3000 }; // Actualiza cada 3 segundosvar watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);Opcionesnavigator.accelerometer.watchAcceleration(onSuccess, onError, [options]);11
  12. 12. EJERCICIO 1:1. Descargar e importar el proyecto “TestAcelerometro”2. Programar la función startWatch() para que recojavalores de aceleración cada segundo.3. Programar las funciones onSuccess y onError.1. onSuccess: escribe en la pantalla el valor de lascoordenadas x, y, z y el timestamp.2. onError: muestra un ‘alert’ con el mensaje deerror “Fallo al recoger datos del acelerómetro”.4. Programar la función stopWatch() para detener larecolección de datos del acelerómetro.EJERCICIO 2:1. Programar la función startMoving() que recogevalores de aceleración cada 0,5 segundos.• En caso de éxito en la recogida de estosvalores, se deberá llamar a la funciónmoveObject, que mueve el objeto por lapantalla teniendo en cuenta los valores (x,y)de aceleración obtenidos.• El resultado se muestra en la páginaobject.html 12
  13. 13. GeolocalizaciónNos permite la posición de unobjeto en la tierra, mediante el usode GPS y señales de red(WiFi, RFID, Bluetooth, GSM)Obtiene la posición actual del dispositivo en un objetoPositionObserva cambios en la posición del dispositivo segúnlas opciones dadas.Interrumpe la obtención de valores de posición.navigator.geolocation.getCurrentPosition(onSuccess, onError, [options]);Éxito Error Opcionesfunction onSuccess(position) {alert(‘Latitud: + position.coords.latitude);};function onError( error) {alert(‘Error: + error.code);}13
  14. 14. function onSuccess(position) {alert(‘Latitud: + position.coords.latitude);};OpcionesenableHighAccuracy (Boolean): Especifica si queremos unaalta precisión en los cálculos. Por ejemplo, usando GPS enlugar de la red.Timeout (Number): Máximo valor de tiempo permitido paraintentar obtener una posición. Si tardamos más tiempo que‘timeout’ en conseguir una localización, se llama a ‘onError’.maximumAge (Number): Indica aceptar la posición obtenidaen el tiempo especificado (nunca mayor al timeout).function onError( error) {alert(‘Error: + error.code);}Propiedades• coords (Coordinates): grados en ese instante.• timestamp (milliseconds): milisegundos transcurridos desde las 0h del 01/01/1970 GMT.• code: Código de error• message: Detalles del errorPositionError.PERMISSION_DENIEDPositionError.POSITION_UNAVAILABLEPositionError.TIMEOUT• latitude (Number) : Latitud en grados.• longitude (Number) : Longitud en grados.• altitude (Number) : Altitud en metros.• accuracy (Number) : Precisión en metros del par (latitud,longitud).• altitudeAccuracy (Number) : Precisión en metros de la altitud.• heading (Number) : Dirección del viaje en grados, respecto al norte geográfico.• speed (Number) : Velocidad de viaje del dispositivo en m/s.14
  15. 15. EJERCICIO 1:1. Descargar e importar el proyecto “TestGeoLoc”.2. Programar la función getPosition() para que recoja valores de localización con estosrequisitos:• Habilitación de la opción enableHighAccuracy• Fijar el timeout a 10 segundos.3. Completar la función onSuccess para que muestre todos los datos posibles delocalización debidamente formateados en una tabla.• Mostrar la fecha y hora en la que se ha obtenido la localización en lugar de su valoren milisegundos (dado por ‘timestamp’).4. Programar la función onError para mostrar un mensaje de alerta con el código del error yel mensaje de error.15
  16. 16. ¿Y si probamos a mostrar la posición en un mapa de google?var point = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);// Initialize the Google Maps API v3var map = new google.maps.Map(document.getElementById(map_canvas), {zoom: 16,center: point,mapTypeId: google.maps.MapTypeId.ROADMAP});// Place a markernew google.maps.Marker({position: point,map: map});16
  17. 17. Reconocimiento de actividadesAplicaciones de Realidad Aumentada17
  18. 18. 18SensoresBrújula, Acelerómetro, GeolocalizaciónJesús Fontecha Diezma
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×