Street View

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Sélectionnez une plate-forme: Android iOS JavaScript

Google Maps Street View vous permet d'explorer les sites du monde entier en profitant d'images à 360 degrés, au niveau des rues. Vous pouvez explorer des sites célèbres dans le monde entier, observer des merveilles de la nature, visiter un voyage ou montrer l'extérieur de votre établissement.

Présentation

Google Street View offre des vues panoramiques à 360 degrés à partir des routes sélectionnées dans sa zone de couverture. La couverture disponible via le SDK est identique à celle de l'application Google Maps pour iOS ou de https://maps.google.com/. Pour en savoir plus sur Street View et voir les zones compatibles sur une carte interactive, consultez À propos de Street View.

Le SDK Maps pour iOS fournit un service Street View permettant d'obtenir et de manipuler les images utilisées dans Google Maps Street View. Les images Street View sont renvoyées sous forme de panoramas et affichées dans la visionneuse Street View, un objet de type GMSPanoramaView.

Panoramas Street View

Chaque panorama Street View est une image, ou une série d'images, représentant une vue complète à 360 degrés d'un même lieu. Les images sont conformes à la projection équirectangulaire (Plate Carrée), qui offre une vue horizontale à 360 degrés (tour d'horizon complet) et une vue verticale à 180 degrés (du zénith au nadir). Le panorama à 360 degrés ainsi obtenu définit une projection sur une sphère, l'image recouvrant la surface à deux dimensions de cette sphère.

Les panoramas Street View sont visibles avec l'objet GMSPanoramaView. Cet objet fournit une visionneuse qui affiche le panorama sous la forme d'une sphère, avec un appareil photo au centre. Vous pouvez contrôler par programmation l'orientation de la caméra, ainsi que plusieurs propriétés permettant de personnaliser la visionneuse.

Accéder aux données Street View

Les panoramas Street View sont identifiés par l'un des deux éléments de métadonnées suivants :

panoramaID
Identifiant unique d'un panorama Street View. Ce panoramaID peut changer au fil du temps et n'est pas adapté comme référence à long terme ou codée en dur. Le panoramaID est plus adapté pour fournir un accès programmatique à différentes images Street View.
coordinate
Emplacement précis de cette image, exprimé sous forme de CLLocationCoordinate2D. Utilisez un coordinate pour stocker de façon persistante un emplacement de panorama, ou pour traduire les actions des utilisateurs sur la carte en une image Street View.

panoramaID et coordinate sont tous deux stockés en tant que propriétés de l'objet GMSPanorama. Vous pouvez demander un GMSPanorama à partir de GMSPanoramaService à l'aide de coordinate ou de panoramaID. L'objet obtenu inclut à la fois des métadonnées et un tableau de liens vers des panoramas à proximité.

Définir la position du panorama

L'emplacement du panorama Street View peut être défini en fonction des coordonnées.

  • La méthode moveNearCoordinate demande un panorama près de la coordonnée.

  • La méthode moveNearCoordinate:radius est similaire, mais elle vous permet de spécifier un rayon de recherche, en mètres, autour de la coordonnée.

  • La méthode moveNearCoordinate:source vous permet de spécifier une source. Une source est utile si vous souhaitez que Street View ne recherche que des panoramas en extérieur. Par défaut, les panoramas des emplacements sont à l'intérieur ou à l'extérieur. Notez qu'il est possible que les panoramas extérieurs ne soient pas disponibles pour le lieu spécifié.

  • La méthode moveNearCoordinate:radius:source vous permet de spécifier un rayon et une source.

Afficher des images Street View

Ajouter une visionneuse Street View

Les principales étapes pour ajouter une visionneuse sont les suivantes :

  1. (Une fois) Suivez la procédure décrite dans la section Premiers pas pour obtenir le SDK, obtenez une clé et ajoutez les frameworks requis.
  2. Créez ou mettez à jour un ViewController. Si le panorama s'affiche lorsque ce contrôleur de vue devient visible, veillez à le créer dans la méthode loadView.
  3. Créez et instanciez une classe GMSPanoramaView à l'aide de la méthode initWithFrame: GMSPanoramaView. Si vous souhaitez l'utiliser comme vue unique du contrôleur de vue, vous pouvez utiliser CGRectZero comme cadre de la carte. La carte sera alors automatiquement redimensionnée.
  4. Définissez l'objet GMSPanoramaView comme vue du contrôleur de vue, par exemple self.view = panoView;.
  5. Définissez l'emplacement de l'image Street View à l'aide d'une méthode telle que moveNearCoordinate:.

Dans l'exemple ci-dessous, une visionneuse Street View est ajoutée à une application.

Swift

import GoogleMaps

class StreetView: UIViewController {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}
      

Objective-C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

- (void)loadView {
  GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
  self.view = panoView;

  [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}

@end
      

Personnaliser le lecteur

Vous pouvez personnaliser la visionneuse en limitant les gestes disponibles. Par défaut, toutes les fonctions de panoramique, de zoom et de déplacement vers les panoramas adjacents sont activées. Les gestes individuels sont contrôlés via les propriétés de GMSPanoramaView. Ces propriétés permettent d'activer ou de désactiver les gestes contrôlés par l'utilisateur. Des modifications programmatiques sont toujours possibles lorsque le geste est désactivé.

orientationGestures
Indique si l'utilisateur peut réorienter la caméra en appuyant dessus ou en la faisant glisser. Définissez la valeur sur NO pour désactiver les changements d'orientation de la caméra.
zoomGestures
Indique si l'utilisateur peut pincer pour zoomer. Définissez la valeur sur NO pour désactiver le zoom.
navigationGestures
Indique si l'utilisateur peut modifier le panorama visible. Les utilisateurs peuvent appuyer une fois sur les liens de navigation ou appuyer deux fois sur la vue pour modifier les panoramas. Définissez la valeur sur NO pour désactiver les changements de navigation.

Vous pouvez activer ou désactiver simultanément tous les gestes à l'aide de la méthode setAllGesturesEnabled:.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Lancer Street View avec le schéma d'URL

Les images Google Street View sont visibles dans l'application Google Maps pour iOS. Pour lancer l'application Google Maps pour iOS en mode Street View avec le schéma d'URL comgooglemaps, définissez le paramètre mapmode sur streetview. Vous trouverez ci-dessous un exemple d'URL qui lance Street View. Pour en savoir plus, consultez la documentation sur le schéma d'URL.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Emplacements et points de vue Street View

GMSPanoramaCamera vous permet de définir le point de vue de la caméra Street View en combinant le cap, le ton et le zoom.

Le fragment ci-dessous oriente l'appareil photo vers le sud et légèrement vers le bas.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Orientation

L'emplacement Street View définit l'emplacement de la mise au point pour une image, mais pas son orientation. Pour ce faire, l'objet GMSOrientation définit deux propriétés:

  • heading définit l'angle de rotation autour de l'emplacement de la caméra en degrés par rapport au nord géographique. Les caps sont mesurés dans le sens des aiguilles d'une montre : le nord géographique est à 0, l'est à 90, le sud à 180 et l'ouest à 270.
  • pitch (0 par défaut) définit la variance d'angle "vers le haut" ou "vers le bas" à partir de l'inclinaison par défaut initiale de la caméra, qui est souvent (mais pas toujours) plate à l'horizontale. Par exemple, une image prise sur une colline présentera probablement une inclinaison par défaut qui n'est pas horizontale. Les angles d'inclinaison sont mesurés avec des valeurs positives à la verticale vers le haut (jusqu'à +90 degrés vers le haut et un angle droit par rapport à l'inclinaison par défaut) et des valeurs négatives vers le bas (jusqu'à -90 degrés vers le bas et à angle droit par rapport à l'inclinaison par défaut).

Allongez

Street View prend en charge différents niveaux de détails des images via l'utilisation du zoom. Vous pouvez régler le niveau de zoom par programmation. Les utilisateurs peuvent aussi modifier le niveau de zoom en pinçant l'écran.

Déplacer la caméra

Une fois que vous avez créé GMSPanoramaView et qu'il est doté d'une caméra configurée ou par défaut, vous pouvez le modifier de plusieurs manières. Lorsque vous changez de caméra, vous pouvez animer le mouvement qui en résulte. L'animation effectue une interpolation entre les attributs de caméra actuels et les nouveaux.

Vous pouvez modifier l'objet GMSPanoramaCamera et le définir sur la propriété camera de GMSPanoramaView. L'appareil photo est ainsi ancré sur le nouveau point de vue sans animation. Un GMSCameraPosition peut être créé pour configurer n'importe quelle combinaison d'orientation et de zoom.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Vous pouvez animer une transition en appelant la méthode animateToCamera:animationDuration: de GMSPanoramaView. Vous pouvez également contrôler l'appareil photo à l'aide de Core Animation. Cet élément est rendu disponible via la CALayer personnalisée sur GMSPanoramaView, GMSPanoramaLayer.

Repères dans Street View

L'objet GMSPanoramaView peut afficher des repères sur la carte. Vous pouvez utiliser le même objet GMSMarker sur un objet GMSMapView ou GMSPanoramaView en définissant ses propriétés correspondantes:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView
      

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;
      

La taille des repères dépend de la distance entre leur position et l'emplacement du GMSCameraView. Si cette distance devient trop importante, le repère devient trop petit pour être affiché et est masqué.

Définissez la propriété panoramaView sur nil pour la supprimer de GMSPanoramaView.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Événements

Vous pouvez écouter les événements qui se produisent sur le panorama Street View, par exemple lorsqu'un utilisateur appuie sur le panorama. Pour écouter des événements, vous devez implémenter le protocole GMSPanoramaViewDelegate. Consultez le guide des événements dans son ensemble et la liste des méthodes sur le GMSPanoramaViewDelegate.