Superpositions au sol

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

Les superpositions au sol sont des superpositions sur la carte qui sont liées aux coordonnées de latitude/longitude. Elles se déplacent donc lorsque vous faites glisser la carte ou effectuez un zoom.

Présentation

Une superposition au sol est une image fixée sur une carte. Contrairement aux repères, les superpositions au sol sont orientées par rapport à la surface de la Terre plutôt qu'à l'écran. Par conséquent, la rotation, l'inclinaison ou le zoom de la carte modifient l'orientation de l'image.

Pour ajouter une superposition au sol, créez un objet GMSGroundOverlay qui définit à la fois une icône et des limites. Dans le cas contraire, la superposition au sol n'apparaîtra pas sur la carte. Vous pouvez éventuellement spécifier des paramètres supplémentaires qui affectent le positionnement de l'image sur la carte. Une fois que vous avez défini les options requises, définissez la propriété map de cet objet pour ajouter la superposition.

Ajouter une superposition

  1. Instanciez un nouvel objet GMSGroundOverlay.
  2. Définissez la propriété icon sur une instance de UIImage.
  3. Définissez la propriété bounds sur une instance de GMSCoordinateBounds. Les limites représentent les angles sud-ouest et nord-est de l'image.
  4. Définissez les propriétés facultatives, telles que bearing et zoomLevel, selon vos besoins.
  5. Définissez la propriété map : l'image apparaît sur la carte.

L'exemple ci-dessous montre comment ajouter une superposition au sol à un objet GMSMapView existant.

Swift

let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)
let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)
let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
let icon = UIImage(named: "newark_nj_1922")

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView
      

Objective-C

CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);
GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest
                                                                        coordinate:northEast];

// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg
UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"];
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;
      

Supprimer une superposition

Vous pouvez supprimer une superposition au sol de la carte en définissant votre propriété GMSGroundOverlay sur map sur nil. Vous pouvez également supprimer toutes les superpositions (y compris les superpositions au sol actuellement sur la carte) en appelant la méthode clear GMSMapView.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Si vous souhaitez modifier une superposition au sol après l'avoir ajoutée à la carte, veillez à conserver l'objet GMSGroundOverlay. Vous pourrez modifier la superposition au sol ultérieurement en modifiant cet objet.

Swift

let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = mapView

// ...

overlay.isTappable = true
      

Objective-C

GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];
overlay.bearing = 0;
overlay.map = mapView;

// ...
overlay.tappable = YES;
      

Événements

Vous pouvez écouter les événements qui se produisent sur la carte, par exemple lorsqu'un utilisateur appuie sur une superposition. Pour écouter des événements, vous devez implémenter le protocole GMSMapViewDelegate. Consultez le guide des événements et la liste des méthodes sur le GMSMapViewDelegate.