HereMapViewHolder
Descripción General
Section titled “Descripción General”Para acceder a las funciones específicas del SDK de HERE, use el HereMapViewHolder.
La definición de HereMapViewHolder es la siguiente:
typealias HereViewHolder = MapViewHolderInterface<MapView, MapScene>
class HereViewHolder( override val mapView: MapView, override val map: MapScene,) : MapViewHolderInterface<MapView, MapScene> { fun toScreenOffset(position: GeoPointInterface): Offset? suspend fun fromScreenOffset(offset: Offset): GeoPoint?}Propiedades
Section titled “Propiedades”mapView: MapView: MapView generado dentro del componente HereMapViewmap: MapScene: Clase MapScene para manipular el MapView
Métodos
Section titled “Métodos”toScreenOffset(position: GeoPointInterface): Offset?: Devuelve la posición en el mapa indicada por GeoPointInterface como un valor Dp con la parte superior izquierda del MapView como (0,0)fromScreenOffset(offset: Offset): GeoPoint?: Devuelve la posición GeoPointInterface en el mapa para la posición especificada por el valor Dp con la parte superior izquierda del MapView como (0,0)
Obtener HereMapViewHolder
Section titled “Obtener HereMapViewHolder”El HereMapViewHolder se puede obtener a través de getMapViewHolder() después de que se inicializa el mapa.
// HERE Mapsval hereState = rememberHereMapViewState()val hereHolder: HereMapViewHolder? = hereState.getMapViewHolder()Ejemplo
Section titled “Ejemplo”@Composablefun MapViewHolderHereMapsExample(modifier: Modifier = Modifier) { // Posición de la cámara del mapa val mapViewState = rememberHereMapViewState( cameraPosition = MapCameraPosition( position = GeoPoint.fromLatLong(35.6812, 139.7671), zoom = 12.0 ), )
// Hacerlo mutableStateOf para que se vuelva a renderizar cuando mapScheme cambie var mapScheme by remember { mutableStateOf(MapScheme.NORMAL_DAY) }
// Obtener ViewHolder val hereMapViewHolder = mapViewState.getMapViewHolder() LaunchedEffect(hereMapViewHolder, mapScheme) { if (hereMapViewHolder == null) return@LaunchedEffect hereMapViewHolder.map.loadScene(mapScheme) { errorCode -> if (errorCode != null) { Log.e("HERE", "Failed to load map scene: ${errorCode.name}") } } }
Column(modifier = modifier) { Row( modifier = Modifier.fillMaxWidth(), ) { Spacer(modifier = Modifier.size(20.dp))
// Visualización de mapa normal Button(onClick = { mapScheme = MapScheme.NORMAL_DAY }) { Text( text = "Normal" ) } Spacer(modifier = Modifier.size(20.dp))
// Visualización de imágenes satelitales Button(onClick = { mapScheme = MapScheme.SATELLITE }) { Text( text = "Satellite" ) } }
HereMapView( state = mapViewState, modifier = Modifier.fillMaxSize(), ) {} }}