SalmorejoTech 2024 - Spring Boot <3 Testcontainers
Accesibilidad y Realidad Aumentada Servicios Web
1. Accesibilidad y Realidad
Aumentada
Servicios Web
Vicente García Díaz – garciavicente@uniovi.es
Universidad de Oviedo, 2012
2. 2
Tabla de contenidos
Wikitude – Servicios Web
1. Conceptos básicos
2. Librería powerhour-wikitude-
world-creator
3.
4. 4
Conceptos básicos
Almacenamiento externo de datos
• Lo más sencillo subir archivos KML o ARML a
los servidores de Wikitude
• Lo más potente gestionar en nuestro servidor
los datos
▫ Cada vez que Wikitude los necesite, los solicitará
▫ Después del procesamiento, hay que enviar los
datos en formato ARML
▫ Pueden ser creados dinámicamente
8. 8
Conceptos básicos
Solicitud de datos desde Wikitude
Parámetro HTTP GET Descripción Ejemplo
latitude La latitud actual del usuario en grados [-90, 90] 34.122429
longitude La longitud actual del usuario en grados [-180, 120.198221
180]
maxNumberOfPois Número máximo de POIs que quiere el usuario 30
searchterm Posible término buscado por el usuario Coches
language El idioma configurado en el teléfono (ISO 639) es
Por ejemplo: http://www.myweb.com/myservice.php?longitude=13.037597&latitude=47.826197
9. 9
Conceptos básicos
Respuesta del servicio ante la solicitud
• El servicio Web debe responder utilizando el formato ARML
▫ Si el servicio Web ofrece resultados de más de un mundo, hay
que devolver todos los ar:provider, aunque en esa ocasión
no haya ningún POI en la respuesta
▫ Si la respuesta tarda más de 3-5 segundos, se ignorará
▫ Si el usuario pide por ejemplo 50 POIs, no hace falta devolver 50
▫ Hay que tener en cuenta que si Wikitude detecta que un mundo
no tiene resultados para una zona concreta en un determinado
momento, tardará un tiempo en volver a analizar dicho mundo
para esa misma zona
Sirve para evitar saturar los servidores
11. 11
Conceptos básicos
Estructura de un documento ARML
Identificador único para el mundo
Nombre del mundo para mostrarse en el cliente
Para entrar en detalle sobre para qué sirve
URL de los creadores
Lista de palabras clave, separadas por comas
URL del logo del mundo o compañía (96x96 PNG)
URL del icono para indicar POIs en la vista de la
cámara (32x32 PNG)
Cada POI tiene un identificar único obligatoriamente
Identificador del mundo asociado al POI
Nombre del POI
Descripción del POI
esqueleto.arml Icono mostrado (64x64 PNG)
Teléfono asociado al POI
URL asociada al POI
Correo electrónico
Dirección física
MIME type para adjunto
(p.e., MPEG, PDF, JPEG,
PNG, GIF, TXT, ….)
LONGIDUD, LATITUD, ALTITUD
http://www.openarml.org/wikitude4.html
13. 13
powerhour-wikitude-world-creator
Librería para trabajar con ARML
• Cuando se trabaja en Wikitude con Servicios
Web, es necesario devolver un documento ARML
ante cada solicitud
• Para facilitar el trabajo con ARML se ha creado
una librería llamada powerhour-wikitude-
world-creator
▫ http://code.google.com/p/powerhour-
wikitude-world-creator/
• Es una librería escrita en el lenguaje PHP
14. 14
powerhour-wikitude-world-creator
Arquitectura de la librería
«interface»
PowerHour_Wikitude_IPOI
PowerHour_Wikitude_Arml PowerHour_Wikitude_POI PowerHour_Wikitude_Attachment
1 * 1 *
15. 15
powerhour-wikitude-world-creator
IPOI.php
/**
* Describes a contract for a Wikitude-ARML-Placemark
* @author Thomas Krammer - www.powerhour.at
*
*/
interface PowerHour_Wikitude_IPOI {
public function getId();
public function getProvider();
public function getName();
public function getDescription();
public function getThumbnail();
public function getPhone();
public function getUrl();
public function getEmail();
public function getAddress();
public function getAttachment();
public function getCoordinates();
}
19. 19
powerhour-wikitude-world-creator
Información necesaria para crear el mundo
• Estado Testing/Published
• URL del servicio Dirección en la que se
encuentra el servicio Web publicado
• Categoría Categoría/s a las que pertenece
el mundo
24. 24
Conexión a la base de datos
Creación de la base de datos
• El servidor 000webhost.com ofrece la posibilidad de
crear bases de datos MySQL de forma gratuita
25. 25
Conexión a la base de datos
Información para acceder a la base de
datos desde PHP