Configurar controles da câmera

Selecione a plataforma: Android iOS JavaScript

Os usuários podem controlar o zoom, a inclinação, a posição e a rotação da câmera usando gestos no mapa. Também é possível configurar a câmera de forma programática.

Diagrama que ilustra o modelo de câmera 3D

A posição da câmera

A visualização do mapa é modelada como uma câmera apontada para um ponto específico no espaço. A posição e a orientação da câmera são definidas por coordenadas de latitude/longitude/altitude, direção, inclinação, alcance e rotação.

Latitude, longitude, altitude

A posição inicial da câmera é definida pela latitude, longitude e altitude. Esses valores se combinam para determinar onde a câmera está posicionada, não para onde ela está apontando ou em que está centralizada.

A latitude pode variar entre -90 e 90 graus, inclusive. A longitude varia entre -180 e 180 graus. A altitude é especificada em metros acima do nível do mar.

Valores acima ou abaixo desse intervalo são fixados para o valor mais próximo dentro desse intervalo. Por exemplo, uma latitude especificada como 100 terá o valor de 90.

Título

A direção especifica a direção da bússola do mapa, medida em graus no sentido horário a partir do norte verdadeiro. O norte corresponde a 0 grau, o leste a 90 graus, o sul a 180 graus e o oeste a 270 graus.

Inclinação

A inclinação especifica o ângulo da câmera em relação ao eixo vertical, medido em graus. Uma inclinação de 0 grau significa que a câmera está apontando diretamente para a Terra (nadir). Uma inclinação de 90 graus significa que a câmera está apontada horizontalmente na direção especificada pela direção.

Intervalo

O intervalo define a distância em metros entre a posição da câmera e o centro do mapa. O intervalo pode variar de zero metro (muito próximo) até 63 milhões de metros, permitindo visualizações de muito perto até uma perspectiva verdadeiramente global. Isso controla o nível de zoom do mapa.

Rolo

A rolagem define o ângulo da câmera em relação ao horizonte, medido em graus. Esse parâmetro pode ser usado para criar efeitos como inclinação durante simulações de voo ou até mesmo um giro completo, girando a câmera em torno do eixo de visualização.

Como controlar a câmera

O exemplo de código a seguir demonstra como controlar a câmera de maneira 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 interface

Além dos gestos padrão, o SDK do Maps 3D para iOS também oferece controles de interface para manipular a posição da câmera.

  • Zoom: mostra os botões "+" e "-" para mudar o nível de zoom do mapa.
  • O controle de movimento mostra os botões "←", "→", "↑" e "↓" para mudar o centro do mapa.
  • Os controles de rotação mostram "↺" e "↻" para mudar a direção da câmera.
  • O controle de inclinação mostra "^" e "⌄" para mudar a inclinação da câmera.
  • O controle de bússola indica a direção do norte e permite redefinir a câmera para uma direção norte.

O exemplo de código a seguir mostra como mudar a visibilidade dos controles de interface:

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() } } } } ```