Vous êtes prêt !

Pour passer à l'étape de développement, accédez à notre documentation pour les développeurs.

Activer Google Maps SDK for iOS

Pour commencer, nous allons vous guider à travers la console Google Developers et effectuer deux ou trois petites choses :

  1. Créer ou choisir un projet
  2. Activer Google Maps SDK for iOS
  3. Créer les clés appropriées
Continuer

Street View

Google Maps Street View vous permet d'explorer des lieux dans le monde entier grâce à des photos de rue à 360 degrés. Vous pouvez découvrir des monuments du monde entier, admirer des merveilles de la nature, trouver l'itinéraire d'un voyage ou afficher une vue extérieure de votre entreprise.

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 for iOS ou https://maps.google.com/. Pour en savoir plus sur Street View et voir les zones prises en charge sur une carte interactive, voir À propos de Street View.

Google Maps SDK for 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 sont affichées dans la visionneuse de 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 compatibles avec la projection des cartes équirectangulaire (Plate Carrée), qui contient 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 peuvent être affichés avec l'objet GMSPanoramaView. Cet objet fournit une visionneuse qui affiche le panorama sous la forme d'une sphère avec un appareil photo en son centre. Vous pouvez contrôler par programmation l'orientation de l'appareil photo ainsi que plusieurs propriétés pour 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 avec le temps, et ne convient pas en tant que référence à long terme ou codée en dur. Il est préférable d'utiliser panoramaID pour fournir un accès par programmation à différentes images Street View. Remarque : Les panoramas Innerspace et Photo Sphere ne sont actuellement pas pris en charge.
coordinate
Localisation précise de l'image, exprimée en tant que CLLocationCoordinate2D. Utilisez une coordinate pour stocker une localisation de panorama de manière persistante ou traduire les actions de l'utilisateur sur la carte en image Street View.

panoramaID et coordinate sont stockés en tant que propriétés de l'objet GMSPanorama. Vous pouvez demander un GMSPanorama depuis GMSPanoramaService en utilisant coordinate ou panoramaID. L'objet résultant inclut les deux éléments de métadonnées, ainsi qu'un tableau de liens vers des panoramas se trouvant à proximité.

Afficher des images Street View

Ajouter une visionneuse Street View

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

  1. (une seule fois) Suivez les étapes décrites dans Premiers pas pour télécharger le SDK, obtenir une clé et ajouter les frameworks obligatoires.
  2. Créez ou mettez à jour un ViewController. Si le panorama est affiché lorsque ce contrôleur d'affichage devient visible, assurez-vous de le créer dans la méthode loadView.
  3. Créez et instanciez une classe GMSPanoramaView en utilisant la méthode GMSPanoramaView initWithFrame:. Si le panorama est destiné à être utilisé comme vue unique du contrôleur d'affichage, alors CGRectZero peut être utilisé comme cadre de la carte — la carte est redimensionnée automatiquement.
  4. Définissez l'objet GMSPanoramaView comme vue du contrôleur d'affichage. Par exemple, self.view = panoView;.
  5. Définissez la position géographique de l'image Street View en utilisant une méthode telle que moveNearCoordinate:.

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

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {

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

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

Objective-C

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

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

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

Personnaliser la visionneuse

Vous pouvez personnaliser la visionneuse en limitant les gestes disponibles. Par défaut, le panoramique, le zoom et l'accès à des panoramas adjacents sont activés. Les gestes individuels sont contrôlés via les propriétés de GMSPanoramaView. Ces propriétés activent ou désactivent les gestes contrôlés par l'utilisateur ; des modifications par programmation restent possibles lorsque le geste est désactivé.

orientationGestures
Détermine si l'utilisateur peut réorienter l'appareil photo par toucher ou glissement. Définissez-la sur NO pour désactiver les modifications d'orientation de l'appareil photo.
zoomGestures
Détermine si l'utilisateur peut pincer pour zoomer. Définissez-la sur NO pour désactiver le zoom.
navigationGestures
Détermine si l'utilisateur peut modifier quel panorama est visible. Les utilisateurs peuvent toucher une fois les liens de navigation ou toucher deux fois la vue pour modifier les panoramas. Définissez-la sur NO pour désactiver les modifications de navigation.

Vous pouvez activer ou désactiver simultanément tous les gestes avec la méthode setAllGesturesEnabled:.

[panoView_ setAllGesturesEnabled:NO];

Lancer Street View à l'aide du modèle d'URL

Les images Google Street View peuvent être affichées depuis l'application Google Maps for iOS. Vous pouvez lancer l'application Google Maps for iOS en mode Street View à l'aide du modèle d'URL comgooglemaps en définissant le paramètre mapmode sur streetview. Un exemple d'URL qui lance Street View est présenté ci-dessous. Pour plus d'informations, voir la documentation Modèle d'URL.

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

Localisation et point de vue Street View

GMSPanoramaCamera vous permet de définir le point de vue de l'appareil photo Street View en combinant la direction, l'inclinaison et le zoom.

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

Swift

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

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView_.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                  pitch:-10
                                                   zoom:1];

Orientation

Le localisation Street View définit la position de l'appareil photo pour une image, mais pas son orientation pour cette image. À cette fin, l'objet GMSOrientation permet de définir deux propriétés :

  • heading définit l'angle de rotation en degrés autour de l'appareil photo par rapport au nord géographique. Les caps sont mesurés en sens horaire : le nord géographique est à 0, l'est à 90, le sud à 180 et l'ouest à 270.
  • pitch (par défaut, 0) définit l'écart de l'angle vers le « haut » ou le « bas » à partir de l'inclinaison par défaut initiale de l'appareil photo, qui correspond généralement (mais pas toujours) à un angle horizontal plat. (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 exprimés avec des valeurs positives vers le haut (jusqu'à +90 degrés vers le haut et à 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).

Zoom

Street View prend en charge différents niveaux de détails des images via l'utilisation du zoom. Vous pouvez définir le niveau de zoom par programmation ; les utilisateurs peuvent le modifier dans la visionneuse en pinçant.

Déplacer l'appareil photo

Une fois que vous avez créé GMSPanoramaView, et qu'il est associé à un appareil photo configuré ou par défaut, vous pouvez le modifier de plusieurs manières. Lorsque vous modifiez l'appareil photo, vous avez la possibilité d'animer le mouvement d'appareil photo qui en résulte. L'animation effectue une interpolation entre les attributs d'appareil photo actuels et les nouveaux attributs.

Vous pouvez modifier l'objet GMSPanoramaCamera et le définir dans la propriété camera de GMSPanoramaView. L'appareil photo est ainsi ancré sur le nouveau point de vue sans animation. Il est possible de créer une GMSCameraPosition pour configurer toute combinaison d'orientation et de zoom.

Swift

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

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
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. Cette option est disponible via l'élément CALayer personnalisé sur GMSPanoramaView, GMSPanoramaLayer.

Marqueurs dans Street View

L'objet GMSPanoramaView peut afficher des marqueurs de carte. Vous pouvez utiliser le même objet GMSMarker sur un objet GMSMapView ou GMSPanoramaView en définissant les 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;

Les marqueurs sont mis à l'échelle en fonction de la distance entre leur position et la localisation de GMSCameraView. Si la distance devient trop importante, le marqueur devient trop petit pour être affiché et est masqué.

Remarque : Toutes les fonctionnalités de marqueur ne sont pas disponibles avec GMSPanoramaView.

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

Swift

marker.panoramaView = nil

Objective-C

marker.panoramaView = nil;

Événements

Vous pouvez écouter des événements qui se produisent sur le panorama Street View, comme lorsqu'un utilisateur touche le panorama. Pour écouter ces événements, vous devez implémenter le protocole GMSPanoramaViewDelegate. Voir le guide sur les événements général et la liste des méthodes sur GMSPanoramaViewDelegate.

Envoyer des commentaires concernant…

Google Maps SDK for iOS
Google Maps SDK for iOS
Besoin d'aide ? Consultez notre page d'assistance.