Contenido del curso
Google Maps SDK
Servicios de Localización
- 7

Kotlin Flows para medir tiempo en Android
12:54 min - 8

Simulación de ubicación GPS en emulador y dispositivo Android
05:48 min - 9

Modelos de localización propios con Clean Architecture
08:36 min - 10

Callbacks de Android convertidos en Flows
14:50 min - 11

Inyección de dependencias para observar localización en Android
06:33 min - 12

LocationTracker con StateFlow para rastreo en Android
08:46 min - 13

State Flows para controlar localización y tiempo en Kotlin
10:00 min - 14

Configuración y pruebas de Location Tracker en Android
09:37 min
Integración Maps con Localización
Manejo de permisos
Integración cámara
- 23

Cómo guardar fotos en Android con PhotoHandler
11:59 min - 24

Conversión de Bitmaps a Byte Arrays con Extension Functions
05:58 min - 25

CameraViewModel con Hilt y StateFlow
08:40 min - 26

Configuración de métodos del ViewModel para gestión de cámara
09:40 min - 27

Integración de CameraX con Jetpack Compose en Android
14:23 min - 28

Creación de pantalla de previsualización de fotos con Jetpack Compose
08:44 min - 29

Galería de fotos en marcadores del mapa
11:55 min
Servicios en Android
Transmisiones en Android (Broadcast)
Creación de polilíneas con datos reales en mapas de Android
Resumen
¿Qué son las polilíneas y cómo se utilizan en interfaces de mapas?
Las polilíneas permiten conectar dos o más puntos geográficos en un mapa. Para implementar una polilínea necesitas definir claramente al menos dos localizaciones que serán conectadas.
¿Cómo crear un modelo de Polylines UI?
Para manejar eficazmente la interfaz de mapas con polilíneas, creamos una clase llamada Polylines UI utilizando la estructura de data class. Esta estructura almacena específicamente cada par de coordenadas que formarán nuestra polilínea.
La estructura básica sería así:
data class PolylineUI( val locationUno: Location, val locationDos: Location )
Aquí, importamos nuestro modelo de localizaciones, asegurándonos así de manejar información real y no estática.
¿Cómo mapear localizaciones reales en polilíneas?
La generación de polilíneas se realiza en un bloque recuerde (remember), siendo criterios clave las localizaciones obtenidas previamente. A continuación, aprovechamos funciones como zipWithNext() para unir fácilmente pares consecutivos de localizaciones desde una lista determinada:
val polylines = remember(locations) { locations.zipWithNext { timestampUno, timestampDos -> PolylineUI( locationUno = timestampUno.location, locationDos = timestampDos.location ) } }
Este proceso genera una colección manejable y clara de objetos PolylineUI que pueden iterarse fácilmente para su posterior despliegue.
¿Qué necesitamos para desplegar las polilíneas?
Finalmente, iteramos sobre cada elemento generado previamente para desplegar efectivamente las polilíneas en nuestra interfaz:
polylines.forEach { polyline -> PolylineComposable( latLongList = listOf( LatLong(polyline.locationUno.latitude, polyline.locationUno.longitude), LatLong(polyline.locationDos.latitude, polyline.locationDos.longitude) ) ) }
Esto permite mostrar claramente las líneas conectando puntos en el mapa, logrando precisión con data real de localizaciones.