Cómo configurar los controles de la cámara

Selecciona la plataforma: Android iOS JavaScript

Los usuarios pueden controlar el zoom, la inclinación, la posición y la rotación de la cámara con gestos en el mapa. También puedes configurar la cámara de forma programática.

Diagrama que ilustra el modelo de cámara 3D

La posición de la cámara

La vista del mapa responde a un modelo en el cual una cámara apunta hacia un punto específico en el espacio. La posición y la orientación de la cámara se definen con las coordenadas de latitud, longitud y altitud, el rumbo, la inclinación, el rango y el balanceo.

Latitud, longitud y altitud

La posición inicial de la cámara se define configurando la latitud, la longitud y la altitud. Estos valores se combinan para determinar dónde se posiciona la cámara, no hacia dónde apunta ni dónde se centra.

La latitud puede variar entre -90 y 90 grados, inclusive. La longitud varía entre -180 y 180 grados, inclusive. La altitud se especifica en metros sobre el nivel del mar.

Los valores superiores o inferiores a este rango se fijarán al valor más cercano dentro de este rango. Por ejemplo, si se especifica una latitud de 100, el valor se fijará en 90.

Encabezado

La orientación especifica la dirección de la brújula del mapa, medida en grados en el sentido de las manecillas del reloj a partir del norte geográfico. El norte corresponde a 0 grados; el este, a 90 grados; el sur, a 180 grados, y el oeste, a 270 grados.

Inclinación

La inclinación especifica el ángulo de la cámara con respecto al eje vertical, medido en grados. Una inclinación de 0 grados significa que la cámara apunta directamente hacia abajo, hacia la Tierra ( nadir). Una inclinación de 90 grados significa que la cámara apunta horizontalmente en la dirección especificada por la orientación.

Rango

El rango define la distancia en metros entre la posición de la cámara y el centro del mapa. El rango puede variar de cero metros (muy cerca) hasta sesenta y tres millones de metros, lo que permite vistas desde muy cerca hasta una perspectiva verdaderamente global. Esto controla de forma eficaz el nivel de "acercamiento" o "alejamiento" con el que aparece el mapa.

Giro

El giro establece el ángulo de la cámara con respecto al horizonte, medido en grados. Este parámetro se puede usar para crear efectos como el de inclinación durante las simulaciones de vuelo o incluso un giro completo, rotando la cámara alrededor de su eje de visualización.

Cómo controlar la cámara

En la siguiente muestra de código, se indica cómo controlar la cámara de manera programática.

Swift


public static var sanFrancisco: Camera = .init(
  center: .init(
    latitude: 37.7845812,
    longitude: -122.3660241,
    altitude: 585),
  fieldOfView: .init(degrees: 100),
  heading: 288.0,
  tilt: 75.0,
  roll: 0.0,
  range: 100)

Controles de la IU

Además de los gestos estándar, el SDK de Maps 3D para iOS también proporciona controles de la IU para manipular la posición de la cámara.

  • El control de zoom muestra los botones "+" y "-" para cambiar el nivel de zoom del mapa.
  • El control de movimiento muestra los botones "←", "→", "↑" y "↓" para cambiar el centro del mapa.
  • Los controles de rotación muestran "↺" y "↻" para cambiar la orientación de la cámara.
  • El control de inclinación muestra "^" y "⌄" para cambiar la inclinación de la cámara.
  • El control de la brújula indica la dirección del norte de la brújula y permite restablecer la cámara a una orientación hacia el norte.

En la siguiente muestra de código, se indica cómo cambiar la visibilidad de los controles de la IU:

swift struct ContentView: View { @State private var showControls = true</p> <p>var body: some View { Map(mode: .hybrid) .mapControls(at: .trailing) { if showControls { CompassControl() ZoomControl() TiltControl() } } } } ```