Configurer les commandes de la caméra

Sélectionnez une plate-forme : Android iOS JavaScript

Les utilisateurs peuvent contrôler le zoom, l'inclinaison, la position et la rotation de la caméra à l'aide de gestes sur la carte. Vous pouvez également configurer la caméra de manière programmatique.

Diagramme illustrant le modèle de caméra 3D

Position de la caméra

La vue de la carte est modélisée comme une caméra orientée vers un point spécifique de l'espace. La position et l'orientation de la caméra sont définies par les coordonnées de latitude/longitude/altitude, le cap, l'inclinaison, la portée et le roulis.

Latitude, longitude, altitude

La position initiale de la caméra est définie en définissant la latitude, la longitude et l'altitude. Ces valeurs se combinent pour déterminer l'emplacement de la caméra, et non l'endroit vers lequel elle pointe ou sur lequel elle est centrée.

La latitude peut être comprise entre -90 et 90 degrés, inclus. La longitude est comprise entre -180 et 180 degrés, inclus. L'altitude est spécifiée en mètres au-dessus du niveau de la mer.

Les valeurs supérieures ou inférieures à cette plage seront limitées à la valeur la plus proche dans cette plage. Par exemple, si vous spécifiez une latitude de 100, la valeur sera définie sur 90.

Titre

Le cap spécifie la direction de la boussole sur la carte, mesurée en degrés dans le sens des aiguilles d'une montre à partir du nord géographique. Le nord correspond à 0 degré, l'est à 90 degrés, le sud à 180 degrés et l'ouest à 270 degrés.

Inclinaison

L'inclinaison spécifie l'angle de la caméra par rapport à l'axe vertical, mesuré en degrés. Une inclinaison de 0 degré signifie que la caméra pointe directement vers la Terre (nadir). Une inclinaison de 90 degrés signifie que la caméra est orientée horizontalement dans la direction spécifiée par l'orientation.

Plage

La plage définit la distance en mètres entre la position de la caméra et le centre de la carte. La plage peut varier de zéro mètre (très près) à 63 millions de mètres, ce qui permet d'obtenir des vues très rapprochées ou une perspective véritablement globale. Cela permet de contrôler le niveau de zoom de la carte.

Roulis

Le roulis définit l'angle de la caméra par rapport à l'horizon, mesuré en degrés. Ce paramètre peut être utilisé pour créer des effets tels que l'inclinaison lors de simulations de vol ou même un tonneau complet, en faisant pivoter la caméra autour de son axe de visualisation.

Contrôler la caméra

L'exemple de code suivant montre comment contrôler la caméra de manière programmatique.

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)

Commandes d'interface utilisateur

En plus des gestes standards, le SDK Maps 3D pour iOS fournit également des commandes d'interface utilisateur permettant de manipuler la position de la caméra.

  • La commande de zoom affiche les boutons "+" et "-" pour modifier le niveau de zoom de la carte.
  • La commande de déplacement affiche les boutons "←", "→", "↑" et "↓" pour modifier le centre de la carte.
  • Les commandes de rotation affichent "↺" et "↻" pour modifier l'orientation de la caméra.
  • La commande d'inclinaison affiche les boutons "^" et "⌄" pour modifier l'inclinaison de la caméra.
  • La commande de boussole indique la direction du nord et permet de réinitialiser la caméra vers le nord.

L'exemple de code suivant montre comment modifier la visibilité des commandes de l'interface utilisateur :

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