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.

Introduction
Une superposition au sol est une image fixée sur une carte. Contrairement aux repères, les superpositions au sol sont orientées vers la surface de la Terre plutôt que vers l'écran. Par conséquent, si vous appliquez une rotation, une inclinaison ou un zoom sur la carte, l'orientation de l'image est modifiée.
Pour ajouter une superposition au sol, créez un objet GMSGroundOverlay
qui définit à la fois une icône et des limites. Si vous ne spécifiez pas l'un ou l'autre, la superposition au sol n'apparaîtra pas sur la carte. Vous pouvez également définir des paramètres supplémentaires qui influent sur le positionnement de l'image sur la carte.
Après avoir défini les options nécessaires, définissez la propriété map
de cet objet pour ajouter la superposition.
Ajouter une superposition
- Instanciez un nouvel objet
GMSGroundOverlay
.
- Définissez la propriété
icon
sur une instance de UIImage
.
- 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.
- Si vous le souhaitez, définissez des propriétés facultatives, comme
bearing
et zoomLevel
.
- Définissez la propriété
map
: l'image s'affiche 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 la propriété map
de votre GMSGroundOverlay
sur nil
. Vous pouvez également supprimer toutes les superpositions (y compris celles au sol actuellement sur la carte) en appelant la méthode GMSMapView
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 appliquant des changements à 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 un calque. Pour écouter les événements, vous devez implémenter le protocole GMSMapViewDelegate
. Consultez le guide des événements et la liste des méthodes sur GMSMapViewDelegate
.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/31 (UTC).
[null,null,["Dernière mise à jour le 2025/08/31 (UTC)."],[[["\u003cp\u003eGround overlays are images fixed to a map, oriented to the Earth's surface, and change orientation with map interactions.\u003c/p\u003e\n"],["\u003cp\u003eTo add a ground overlay, create a \u003ccode\u003eGMSGroundOverlay\u003c/code\u003e object, define its icon, bounds, and optional settings, then set its \u003ccode\u003emap\u003c/code\u003e property.\u003c/p\u003e\n"],["\u003cp\u003eGround overlays can be removed by setting the \u003ccode\u003emap\u003c/code\u003e property to \u003ccode\u003enil\u003c/code\u003e or using the \u003ccode\u003eclear\u003c/code\u003e method on the \u003ccode\u003eGMSMapView\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eModifications to existing ground overlays can be made by accessing and updating the \u003ccode\u003eGMSGroundOverlay\u003c/code\u003e object directly.\u003c/p\u003e\n"],["\u003cp\u003eImplement the \u003ccode\u003eGMSMapViewDelegate\u003c/code\u003e protocol to listen to events like user taps on the overlay.\u003c/p\u003e\n"]]],["Ground overlays, images fixed to a map using latitude/longitude, are added by creating a `GMSGroundOverlay` object. This requires setting both the `icon` (an image) and `bounds` (southwest/northeast coordinates). Optionally, set properties like `bearing` and `zoomLevel`. To display, assign the object's `map` property. Overlays are removed by setting `map` to `nil` or using the `clear` method. Modifications require retaining the `GMSGroundOverlay` object and to listen for events, you must implement `GMSMapViewDelegate`.\n"],null,["Select platform: [Android](/maps/documentation/android-sdk/groundoverlay \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/overlays \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/groundoverlays \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nGround overlays are overlays on the map that are tied to latitude/longitude\ncoordinates, so they move when you drag or zoom the map.\n\nIntroduction\n\nA ground overlay is an image that is fixed to a map. Unlike\n[markers](/maps/documentation/ios-sdk/marker), ground overlays are oriented against the Earth's surface\nrather than the screen, so rotating, tilting or zooming the map will change\nthe orientation of the image.\n\nTo add a ground overlay, create a\n[`GMSGroundOverlay`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSGroundOverlay)\nobject that defines both an icon and a bounds. Failing to specify either will\ncause the ground overlay to not appear on the map. You can optionally specify\nadditional settings that will affect the positioning of the image on the map.\nOnce you've defined the necessary options, set this object's `map` property to\nadd the overlay.\n\nAdding an overlay\n\n1. Instantiate a new `GMSGroundOverlay` object\n2. Set the `icon` property to an instance of `UIImage`.\n3. Set the `bounds` property to an instance of `GMSCoordinateBounds`. The bounds represent the south west, and north east corners of the image.\n4. Set optional properties, such as `bearing` and `zoomLevel`, as desired.\n5. Set the `map` property - the image appears on the map.\n\nThe below example demonstrates how to add a ground overlay to an existing\n`GMSMapView` object.\n\n\nSwift \n\n```swift\nlet southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)\nlet northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)\nlet overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)\n\n// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg\nlet icon = UIImage(named: \"newark_nj_1922\")\n\nlet overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)\noverlay.bearing = 0\noverlay.map = mapView\n \n```\n\nObjective-C \n\n```objective-c\nCLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);\nCLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);\nGMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest\n coordinate:northEast];\n\n// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg\nUIImage *icon = [UIImage imageNamed:@\"newark_nj_1922\"];\nGMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];\noverlay.bearing = 0;\noverlay.map = mapView;\n \n```\n\n\u003cbr /\u003e\n\nRemoving an overlay\n\nYou can remove a ground overlay from the map by setting your\n`GMSGroundOverlay`'s `map` property to `nil`. Alternately, you can remove all\nof the overlays (including ground overlays currently on the map by calling the\n`GMSMapView` `clear` method.\n\n\nSwift \n\n```swift\nmapView.clear()\n \n```\n\nObjective-C \n\n```objective-c\n[mapView clear];\n \n```\n\n\u003cbr /\u003e\n\nIf you wish to make modifications to a ground overlay after you've added it to\nthe map, ensure that you keep hold of the `GMSGroundOverlay` object. You can\nmodify the ground overlay later by making changes to this object.\n\n\nSwift \n\n```swift\nlet overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)\noverlay.bearing = 0\noverlay.map = mapView\n\n// ...\n\noverlay.isTappable = true\n \n```\n\nObjective-C \n\n```objective-c\nGMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];\noverlay.bearing = 0;\noverlay.map = mapView;\n\n// ...\noverlay.tappable = YES;\n \n```\n\n\u003cbr /\u003e\n\nEvents\n\nYou can listen to events that occur on the map, such as when a user taps an\noverlay. To listen to events, you must implement the\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate) protocol. See the\n[guide to events](/maps/documentation/ios-sdk/events) and the list of methods on the\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate)."]]