Está en la página 1de 6

Machine Translated by Google

MIPRO 2019, 20-24 de mayo de 2019, Opatija Croacia

Uso de ARKit 2.0 de Apple para el


desarrollo de aplicaciones de realidad aumentada
Ivan Permozer* y Tihomir Orehovaÿki**
Juraj Dobrila Universidad de Pula *
Facultad de Economía y Turismo „Dr. Mijo Mirkoviÿ“, Pula, Croacia ** Facultad de
Informática, Pula, Croacia {ipermoze, tihomir.orehovacki}@unipu.hr

Resumen : cuando se trata de aplicaciones prácticas de realidad En consecuencia, las aplicaciones descritas en este documento
aumentada, las herramientas de plataforma móvil son las más merecedoras.
se basan en la biblioteca ARKit 2.0 de Apple, que simplifica
Gracias a la naturaleza de los dispositivos móviles y su uso enormemente el desarrollo de aplicaciones basadas en AR en varios
cotidiano, se ha formado inadvertidamente la base ideal para este aspectos clave con el uso del lenguaje de programación Swift de Apple
tipo de contenido. En consecuencia, dentro del entorno de desarrollo compilado a través de Xcode.
de iOS , el programa Xcode de Apple permite el desarrollo de
aplicaciones utilizando la biblioteca ARKit , que ofrece una gran II. APLICACIÓN DE MEDICIÓN DE DISTANCIA
cantidad de beneficios. Entre la plétora de ventajas, este documento
Gracias a los recientes avances tecnológicos, muchas herramientas
se centra en la utilización de funciones como la capacidad de medir
cotidianas se reemplazan y mejoran gradualmente. Un ejemplo de ello
distancias entre dos puntos en el espacio, la detección de planos
horizontales y verticales, la capacidad de detectar objetos lo podemos ver en el caso de la regla clásica, o una cinta métrica cuyo
tridimensionales y utilizarlos como disparadores, y la implementación papel podría ser asumido por una aplicación basada en realidad
consolidada de Bibliotecas ARKit y MapKit junto con la API de aumentada.
Google Places destinada a mostrar contenido superpuesto generado
La siguiente aplicación intenta mostrar el potencial y cerrar la
por computadora en iOS 11 y versiones posteriores del sistema
brecha entre la realidad y la tecnología utilizando la realidad aumentada
operativo móvil de Apple .
con la ayuda de la cámara integrada del dispositivo iOS como elemento
de entrada para lograr una visualización creíble de la distancia entre
Palabras clave : Apple, AR, ARKit, realidad aumentada, dos puntos deseados en el espacio ( Figura 1).
Computer Vision, Core ML, Custom Vision, Google Places, iOS,
iPhone, Machine Learning, Map Kit, Microsoft Cognitive,
La visualización de la distancia se logró mediante el uso de la
PDI, Puntos de interés, SceneKit, Swift, Xcode
clase UIlabel() que, entre otros, contiene un elemento CGRect que
representa un rectángulo sobre el cual una cadena de caracteres
alfanuméricos representa la distancia medida en centímetros con dos
I. INTRODUCCIÓN
o más decimales.
En virtud de los avances tecnológicos recientes, los gráficos
Dado que el propósito de la aplicación es representar visualmente
generados por computadora han alcanzado un nivel en el que lograr
puntos en el espacio en función de la entrada del usuario, el método
una representación creíble del contenido fotorrealista ya no representa
SCNNode junto con la instancia SCNMaterial() representa el
un desafío, sino que sirve como un trampolín cuando se trata de definir
componente clave para traducir la entrada táctil en una interpretación
el concepto de realidad a través de la convergencia de contenido real
gráfica de un punto en la pantalla del dispositivo. .
y virtual.
Por lo tanto, se podría argumentar que el término Realidad Aumentada Por último, la inclusión de la clase UITapGestureRecognizer , que
representa la columna vertebral de los mundos real y virtual. es responsable de percibir la cantidad de toques, representa el
ingrediente final necesario para combinar la entrada táctil con las
medidas de distancia entre los dos puntos separados en el espacio.
Desde sus inicios, la realidad aumentada ha cambiado
drásticamente la forma en que se percibe la información. Aunque
presente durante muchos años, la realidad aumentada ha florecido La idea básica detrás de la aplicación se basa en utilizar la fórmula
gracias a la aparición de suficiente soporte de hardware y software a de la distancia basada en el sistema de coordenadas cartesianas y
finales del siglo XX. En consecuencia, interactuar con objetos virtuales aplicarla en el espacio tridimensional.
superpuestos al entorno real ya no es una cuestión de ficción, sino un La combinación de ese concepto con la biblioteca ARKit de Apple ,
elemento fundamental de numerosas aplicaciones y servicios que que es responsable de detectar superficies horizontales y verticales,
pretenden mejorar y simplificar simultáneamente las interacciones y el da como resultado una visualización de medición de distancia creíble
consumo de todo tipo de contenidos digitales. basada en la entrada del usuario a través de la interfaz de pantalla
táctil del dispositivo.

Durante el proceso de prueba de la aplicación, se destacaron


Aunque la realidad aumentada se utiliza en una amplia gama de varias cosas. Aunque los puntos deseados se pueden colocar en
actividades humanas, este documento tiene la intención de centrarse cualquier lugar dentro del espectro visible proporcionado por la cámara
en algunas implementaciones específicas y potencialmente prácticas gran angular del dispositivo, las mediciones más precisas se pueden
de AR dentro del sistema operativo iOS de Apple . lograr en el rango de 10 a 300 cm.
También vale la pena señalar el hecho de que las medidas se obtienen

1629
Machine Translated by Google

más preciso cuanto más cerca esté el dispositivo con respecto al La funcionalidad de la aplicación en sí se basa en varios
objeto que se está midiendo. Donde la implementación de ARKit componentes clave. Uno de esos componentes es VNCoreMLModel
realmente brilla es el hecho de que los puntos de medición no de la biblioteca Core ML , que es responsable de utilizar el modelo
necesitan estar visibles en la pantalla al mismo tiempo, lo que en de Machine Learning dentro del código [7].
última instancia se traduce en un alto nivel de precisión siempre
que el dispositivo se coloque más cerca del objeto que se está
Gracias a la inclusión de la biblioteca ARKit y su clase
midiendo [4] (Figura 1).
UITapGestureRecognizer , la aplicación puede reconocer la entrada
En conclusión, gracias al sistema de seguimiento y mapeo de del usuario y traducirla en una acción definida específicamente. En
ARKit , se podría decir que los puntos colocados encima del mundo este caso, de manera similar a la aplicación de medición de
real encarnan la definición de realidad aumentada. distancias, la aplicación genera esferas blancas con la adición de
un elemento de texto tridimensional adjunto a su nodo.

La función de la biblioteca Vision entra en juego una vez que


la imagen percibida debe compararse con el modelo de aprendizaje
automático deseado que se inicia con el componente
VNClassificationObservation (Figura 2).

La inicialización de la solicitud de imagen se realiza con la


ayuda de una instrucción do-catch acompañada de la palabra clave
try , lo que implica que la solicitud puede devolver un error.
Después de una declaración do-catch exitosa, la solicitud Vision
se inicia con la ayuda de la función perform .

Figura 2. Implementación del modelo ARVision personalizado dentro del


código usando la interfaz Xcode

Otra cosa que vale la pena señalar es el hecho de que la


imagen percibida por la biblioteca ARKit se graba en formato YUV ,
lo que a su vez significa que debe convertirse a valores RGB para
que el dispositivo pueda interpretar la imagen correctamente y, en
última instancia, garantizar Compatibilidad futura con una gama
más amplia de modelos de Machine Learning .
Figura 1. Demostración de la capacidad básica de la aplicación de medición
de distancia
Para la creación del modelo personalizado de Machine Learning
se utilizó el servicio Cognitive de Microsoft bajo el nombre de
tercero APLICACIÓN DE RECONOCIMIENTO DE OBJETOS Custom Vision . El propósito del servicio es simplificar la creación y
el entrenamiento de modelos de aprendizaje automático más
A diferencia de la forma anterior de implementar la realidad
pequeños.
aumentada, la siguiente aplicación utiliza elementos estándar de
las bibliotecas ARKit y SceneKit junto con las bibliotecas Core ML Para garantizar un resultado más preciso, cada categoría de
y Vision . objeto específica contiene una secuencia de 100 a 500 fotos. Dado
que el modelo requiere una serie de ciclos de entrenamiento
Mientras que las bibliotecas ARKit y SceneKit brindan datos
repetitivos, cada ciclo contenía hasta 60 fotos diferentes. El número
relacionados con la detección plana y almacenan parámetros
de fotos por objeto se determinó en función de sus características
definidos por el usuario superpuestos sobre el entorno real del
físicas, es decir, los objetos más simples necesitaban menos fotos
usuario, la biblioteca Vision presenta la capacidad de usar Machine
que los más complejos.
Learning y Computer Vision para poder determinar el nombre del
objeto percibido. en función de la categoría predefinida específica Todas las fotos cargadas, junto con sus respectivas etiquetas
a la que pertenece. utilizadas para determinar el nombre de la clase a la que pertenecen,
pertenecen al dominio General (compacto) dentro de la interfaz de
El proceso de evaluación de categorías se realiza con la ayuda Microsoft Custom Vision , ya que esa es la única forma de extraer
de modelos de aprendizaje automático predefinidos , como los datos necesarios en un formato compatible con los modelos
Inceptionv3, Resnet50, SqueezeNet,red móvil,
GoogLeNetPlaces disponibles
y VGG16 , iOS Core ML .
en la documentación de Apple Developer [2]. Además, junto con
los modelos de aprendizaje automático antes mencionados , se En total, 5000 del máximo permitido de 5000 fotos se cargaron
diseñó un modelo personalizado basado en el idioma croata con 17 etiquetas diferentes (Figura 3). Además, se utilizaron 10 de
específicamente con el fin de probar y demostrar la aplicación. las 10 iteraciones de entrenamiento del modelo para garantizar la
capacidad del modelo para diferenciar las 17 categorías de objetos
que contiene. Dado que el mínimo aceptable

1630
Machine Translated by Google

Se considera que el porcentaje de un modelo utilizable es superior Otro elemento destacado de la aplicación es la inclusión de
al 60 %, y los porcentajes de precisión y recuperación logrados en datos estadísticos ubicados en la mitad inferior de la pantalla. Las
10 sesiones de capacitación consecutivas alcanzaron más del 86 estadísticas incluyen funciones como un contador de fotogramas
%, el modelo ML personalizado se creó con éxito y está listo para por segundo y el número de nodos percibidos en la escena junto
implementarse dentro de la aplicación [4] . con el número total de polígonos. Al revisar las estadísticas
disponibles, proporcionadas gracias a la biblioteca SceneKit , el
usuario puede determinar cuántos elementos en la escena actual
ha reconocido el dispositivo y, por lo tanto, influir en su percepción
reposicionando ligeramente el dispositivo [4] (Figura 5).

Figura 3. El proceso de carga de una secuencia de imágenes de manos con las


Fi t ti ti 5S
escena dibasada
lbd th henSlaii ffunción
ti Figura 5. Visualización
showStatistics debiblioteca
de la estadísticas de
SceneKit
etiquetas adecuadas con el fin de entrenar el modelo de aprendizaje
automático personalizado

IV. GOOGLE PLACES PUNTOS DE INTERÉS AR


Al iniciar la aplicación por primera vez, el usuario recibe una
SOLICITUD
pantalla blanca durante la cual ARKit recopila parámetros y
posiciones de las superficies circundantes, después de lo cual la El propósito de esta aplicación es identificar y señalar la
aplicación queda lista para la entrada del usuario. Teniendo en ubicación de los puntos de interés de Google en función de la
cuenta el número de caracteres de cada etiqueta, el rango de uso ubicación actual del usuario. La visualización del contenido de PDI
recomendado es de 20 a 200 cm. se logra combinando la biblioteca HDAugmentedReality con la
implementación de la interfaz API de Google Places .
Se logra un reconocimiento más preciso y confiable cuando el
dispositivo se coloca más cerca del objeto que el usuario desea
identificar utilizando el modelo de aprendizaje automático incorporado . Al utilizar los dos elementos antes mencionados en combinación
La razón de esto radica en el hecho de que el dispositivo tiende a con el módulo de cámara incorporado del dispositivo, la aplicación
discernir los objetos más fácilmente si cubren la mayor parte del puede mostrar los puntos de interés de Google superpuestos sobre
encuadre en comparación con una escena más compleja con varias el entorno circundante y, al mismo tiempo, vincular las etiquetas de
formas y objetos similares [4]. PDI flotantes a su ubicación real en el espacio, independientemente
de la dirección en la que se encuentre. el dispositivo está mirando.
Teniendo en cuenta las limitaciones de la aplicación, se
recomienda que los objetos sean estáticos debido a la forma en que
la aplicación recopila y utiliza los parámetros espaciales necesarios Lograr esta tarea compleja requirió la creación y combinación
para la virtualización precisa del contenido generado por de varios archivos basados en Swift . Los primeros dos archivos
computadora. Por lo tanto, los objetos estáticos tienen una mayor llamados MjestaUcitavanje.swift y Mjesto.swift son responsables de
probabilidad de ser reconocidos por el algoritmo en comparación devolver los resultados de la consulta como puntos de interés,
con los que cambian de posición en relación con la ubicación del según la interfaz API de Google Places , y almacenarlos en las
dispositivo (Figura 4). clases apropiadas dentro del código. La clase más importante en
este caso es CLLocationManager , ya que es responsable de iniciar
y detener los protocolos de datos de ubicación necesarios para la
ejecución exitosa de la funcionalidad principal de la aplicación [4]
(Figura 6).

Figura 4. Prueba de la función de reconocimiento de objetos de objetos estáticos mientras


Figura 6. Sintaxis de obtención de datos de ubicación mediante la clase CLLocation
utilizando el modelo de aprendizaje automático croata

1631
Machine Translated by Google

Gracias a la parte del código antes mencionada, la aplicación Dado que la aplicación está diseñada para mostrar el contenido
puede obtener datos relacionados con la ubicación actual del de PDI de dos maneras, es decir, en un mapa y a través de la vista
dispositivo, lo que a su vez lo prepara para obtener puntos de en vivo del módulo de cámara incorporado, la aplicación debe
interés a través de la interfaz API de Google Places . mostrar un mapa con la ubicación actual del usuario en la pantalla inicial.
pantalla.
Dado que la API de Google Places es, en esencia, un servicio
de pago, su uso e implementación requieren una cuenta de Google La implementación del elemento del mapa se logra mediante la
registrada junto con una tarjeta de crédito válida. Al completar el utilización de la biblioteca MapKit dentro de un archivo Swift
proceso de registro y pago, el servicio genera automáticamente una separado llamado MjestoAnotacija , cuyo propósito es vincular los
clave API necesaria para la correcta implementación de los servicios detalles del contenido de PDI obtenidos con sus ubicaciones
de Google dentro de la aplicación [3]. En este caso, la propia clave correspondientes en el mapa (Figura 10).
de API debía almacenarse en el archivo MjestaUcitavanje.swift
(Figura 7).

Figura 7. Constantes necesarias de apiURL y apiKey de la API de Google Places


para la correcta ejecución del código

Para que los puntos de interés se muestren en la pantalla del


Figura 10. Implementación del protocolo MKAnnotation de MapKit
dispositivo, primero deben pasarse al archivo ViewController Swift responsable de vincular los datos de PDI con la ubicación correspondiente en el
con la ayuda de la variable beginLoadingPOIs que es responsable mapa
de monitorear todas las solicitudes en curso (Figura 8). Dado que el
método CLLocationManagerDelegate puede iniciar varias solicitudes
después de actualizar los datos de ubicación, la mayor cantidad de Con la pantalla del mapa inicial creada, el único elemento que
solicitudes se limita con la ayuda de la variable mjesta , que está falta es la implementación real de la realidad aumentada.
destinada a almacenar todos los puntos de interés percibidos. Para que el usuario pueda hacer la transición de un mapa tradicional
a la vista AR , se debe crear un elemento UIButton que represente
el acceso directo de la cámara.

Para que la parte real de realidad aumentada de la aplicación


sea funcional, se debe utilizar la biblioteca HDAugmentedReality
para simplificar el proceso de ejecución de cálculos específicos
Figura 8. La implementación de los puntos de interés de carga iniciados y mjesta orientados a determinar la distancia entre el dispositivo y los puntos
variables dentro del código
de interés a los que apunta. Los cálculos en cuestión implican el
uso de las coordenadas x e y de cada elemento PDI individual
basado en el sistema de coordenadas cartesianas, así como el uso
Teniendo en cuenta el hecho de que el usuario puede estar de la fórmula de distancia ortodrómica que determina la distancia
ubicado en un entorno que no tiene ningún punto de interés cercano, precisa entre dos puntos en una esfera. En resumen, la biblioteca
el código contiene un parámetro específico para solucionar este HDAugmentedReality es responsable de mantener el contenido de
problema. Al asignar un valor de 5000 al parámetro de radio , la PDI vinculado a su ubicación real en el espacio en lugar de
aplicación comienza a cargar puntos de interés que se encuentran mostrarse constantemente en el dispositivo, independientemente
a una distancia de hasta 5000 metros del dispositivo. En otras de su orientación [1].
palabras, si el valor devuelto es nulo , el radio de recuperación
aumenta gradualmente hasta que se carga una cantidad suficiente
de lugares de interés en ViewController [4] La propia biblioteca HDAugmentedReality contiene una serie
(Figura 9). de archivos Swift que se necesitan para identificar los puntos de
interés, crear una vista para los puntos de interés, definir la
configuración básica y los métodos de apoyo, ejecutar cálculos y
controlar la señal de video mientras se agregan anotaciones al
mismo tiempo. espectro visible. Sin embargo, para que la biblioteca
sea utilizable, su ARViewController debe implementarse dentro del
archivo ViewController (Figura 11).

Figura 9. Parte de la función locationManager responsable de determinar el Figura 11. Implementación de ARViewController dentro del archivo ViewController Swift
radio máximo de obtención de contenido de PDI

Al combinar todos los elementos mencionados anteriormente, Otro elemento crucial de la experiencia de realidad aumentada
la aplicación puede determinar la ubicación del usuario, cargar una dentro de la aplicación es el protocolo ARDataSource , que es
cantidad de puntos de interés cercanos y almacenarlos dentro de responsable de transferir los datos necesarios para mostrar el
sus respectivas clases. contenido de los puntos de interés . Para ese propósito,

1632
Machine Translated by Google

se creó un archivo Swift separado con el nombre AnnotationView. puede obtener información relevante al tocar el punto de interés
deseado en la pantalla del dispositivo.

Utilizando la biblioteca UIKit , el archivo AnnotationView


contiene varios elementos notables. La inclusión de la subclase
ARAnnotationView brinda acceso al elemento de vista que
contiene etiquetas con nombres y distancias de los puntos de
interés correspondientes. Además, la función loadUI() es
responsable de adjuntar configuraciones específicas a las
etiquetas en cuestión. Figura 13. Implementación de UIAlertController

Para fines de visualización dentro del segmento de realidad


aumentada de la aplicación, se crearon tres etiquetas específicas.
Mientras que las variables bajo los nombres nazivLabel y El último componente crucial necesario para la ejecución
exitosa de la aplicación es la inclusión de la clave
udaljenostLabel representan los elementos gráficos de fondo para
NSCameraUsageDescription dentro del archivo Info.plist . El único
los parámetros de nombre y distancia respectivamente, la variable
propósito de esta clave específica es solicitar el permiso del
strelicaLabel representa la flecha debajo de la anotación que
usuario para usar la cámara integrada del dispositivo para poder
apunta hacia la ubicación a la que se refiere [4].
mostrar el contenido de realidad aumentada.

Todos los elementos contenidos dentro de la etiqueta se


Al ejecutar la aplicación por primera vez, se solicita al usuario
crearon usando la estructura CGRect que se usa comúnmente
que permita el uso de los servicios de ubicación. También vale la
para crear rectángulos de varios tamaños. Para crear la forma de
pena señalar que se le pedirá al usuario que active los servicios
flecha, se giró un elemento rectangular 45 grados y se colocó
de ubicación cada vez que la aplicación detecte que los servicios
debajo de los rectángulos que contenían el contenido de PDI .
no se están ejecutando activamente en segundo plano. Esto es
Esto se hizo usando el comando de ángulo de rotación que
para garantizar la precisión y la fiabilidad de los resultados que
representa la rotación en radianes en lugar de grados, por lo que
se muestran en la aplicación.
requiere que el valor de pi se divida por cuatro. Dado que pi, en
este caso, representa 180 grados, el resultado equivale a una Al activar los servicios de ubicación, el usuario permite que la
rotación de 45 grados [6]. aplicación utilice el módulo GPS integrado del dispositivo para
determinar su ubicación en relación con los puntos de interés
Los elementos restantes de la etiqueta constan de dos
cercanos. Poco después, los puntos de interés comienzan a
rectángulos básicos con dos esquinas curvas cada uno. Las
aparecer en línea con el radio previamente determinado de 5000
esquinas curvas se lograron gracias a la biblioteca Core Animation
metros (Figura 14). Pellizcar el mapa para acercar o alejar revela
compatible con iOS 11 y las iteraciones más recientes del sistema
puntos de interés adicionales en la vecindad determinados por
operativo iOS . Mediante el uso de una instrucción if que contiene
sus estadísticas obtenidas del servidor de Google Maps . En
el comando maskedCorners , las variables layerMinXMinYCorner
consecuencia, el uso de la aplicación requiere una conexión
y layerMaxXMinYCorner se utilizaron para redondear dos esquinas
constante de Wi-Fi o datos móviles [4].
específicas en cinco unidades [5].

Para que se mostraran todos los elementos de la etiqueta,


debían estar contenidos dentro de la función layoutSubviews()
seguida de la función touchesEnded de UIKit . De esta forma, la
aplicación es capaz de discernir si la pantalla está siendo tocada
para ejecutar los procesos necesarios para su ejecución exitosa
(Figura 12).

Figura 12. Combinando los elementos de etiqueta con layoutSubviews() y


toquesFunciones terminadas

La clase UIAlertController contenida dentro de la clase


UIViewController (Figura 13) salva la brecha entre layoutSubviews()
y el archivo ViewController real.
Con la inclusión de la clase UIViewController el usuario
Figura 14. La pantalla de inicio de la aplicación mostrando la ubicación actual del
usuario (azul) y los puntos de interés cercanos (rojo)

1633
Machine Translated by Google

Tocar el botón Cámara ubicado en la esquina inferior derecha Al moverse por el espacio, el usuario puede descubrir puntos de
revela la parte de realidad aumentada de la aplicación. Para que sea interés adicionales que inicialmente no estaban presentes según su
funcional, se le solicita al usuario una notificación emergente que le popularidad determinada por el servidor de Google Maps . El servidor
pide que permita el uso del módulo de cámara integrado del de Google Maps también ofrece 90 categorías diferentes de contenido
dispositivo debido a la clave NSCameraUsageDescription mencionada de puntos de interés que se pueden mostrar de forma selectiva
anteriormente contenida en el archivo Info.plist . Permitir el uso del utilizando el comando types= dentro del código [3]. En caso de que
módulo de cámara del dispositivo hace que la pantalla se ocupe con no se defina una categoría, el usuario puede ver todos los puntos de
puntos de interés cercanos que flotan sobre su ubicación real interés disponibles en su entorno.
superpuestos sobre el entorno real del usuario [4].

V. CONCLUSIÓN

Dado que la visualización del contenido de PDI depende de la Las soluciones contemporáneas de realidad aumentada, como
orientación espacial del dispositivo, el usuario debe apuntar el Apple ARKit , están actualizando diligentemente sus plataformas y
dispositivo hacia la dirección general en la que se encuentran los los utensilios que las acompañan con cada iteración que viene,
puntos de interés para poder ver su distancia real en la pantalla del proporcionando así a los desarrolladores una gama más amplia de
dispositivo (Figura 15). herramientas destinadas a simplificar las tareas tediosas y, en última
instancia, aumentar su productividad y creatividad y, en consecuencia,
descubrir un uso nuevo e innovador. -casos escenarios.

Algunos conceptos innovadores de implementación de realidad


aumentada se materializaron durante el proceso de elaboración de
este documento, mientras que sus aplicaciones prácticas sirven como
testimonio de la funcionalidad y el potencial de la sinergia entre la
tecnología móvil, la plataforma iOS y la realidad aumentada como
una forma de consumir y interactuando con contenidos digitales.

Sobre la base de los conceptos presentados que combinan


contenido que es de interés para los usuarios, es decir, potencialmente
atractivo y relevante, con innovaciones y aumentos tecnológicos
modernos, se puede concluir que la realidad aumentada representa
Figura 15. Visualización de los nombres y distancias de los puntos más cercanos de un potencial innegable al tiempo que sirve como una alternativa útil a
interés mediante el uso de la realidad aumentada una multitud de métodos previamente establecidos. Modos de
interacción con el entorno.

Al tocar las etiquetas de nombre y distancia, el usuario puede


acceder a información adicional sobre ciertos puntos de interés REFERENCIAS
dependiendo de si hay más información disponible en el servidor de
[1] D. Huis, realidad aumentada HD, GitHub Inc.,
Google Maps . Para salir de la notificación de información, toque el
https://github.com/DanijelHuis/HDAugmentedReality [2]
botón Aceptar , mientras que para salir de la vista AR , toque el botón
Documentación para desarrolladores, Apple Inc.,
dedicado en la esquina superior derecha (Figura 16). https://developer.apple.com/documentation/arkit
[3] Plataforma de Google Maps: descripción general, Google Inc.,
https://developers.google.com/places/web-service/intro
[4] I. Permozer, “Proširena stvarnost na Apple iOS platformi” (en croata), tesis de
maestría, Universidad Juraj Dobrila de Pula, Departamento de Economía y
Turismo, 26 de septiembre de 2018.
[5] P. Hudson, Cómo redondear solo esquinas específicas usando maskedCorners,
con
Hacking Swift, 2018., https://www.hackingwithswift.com/example-code/calayer/
how-to round-only-specific-corners-using
[6] P. Hudson,
-maskedcorners
Cómo
escalar,
estirar, mover y rotar UIViews usando CGaffineTransform, Hacking Swift, 2016.,
https://www.hackingwithswift.com/example-code/uikit/how-to scale-stretch -move-
and-rotate-uiviews-using-cgaffinetransform [7] Trabajando con Core ML Models, Apple
con
Inc., https://developer.apple.com/machine-learning/build-run-models/

Figura 16. Visualización de la información adicional para un punto de interés


específico obtenido del servidor de Google Maps

1634

También podría gustarte