Overlay del suolo
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Seleziona la piattaforma:
Android
iOS
JavaScript
Gli overlay del suolo sono overlay sulla mappa associati alle coordinate di latitudine/longitudine, quindi si spostano quando trascini o aumenti lo zoom della mappa.

Introduzione
Un overlay del suolo è un'immagine fissa su una mappa. A differenza dei segnalini, gli overlay del suolo sono orientati rispetto alla superficie terrestre anziché allo schermo, quindi la rotazione, l'inclinazione o lo zoom della mappa cambieranno l'orientamento dell'immagine.
Per aggiungere una sovrapposizione a terra, crea un oggetto
GMSGroundOverlay
che definisca sia un'icona sia un riquadro. Se non specifichi nessuno dei due, l'overlay a terra non verrà visualizzato sulla mappa. Puoi specificare facoltativamente
impostazioni aggiuntive che influiranno sul posizionamento dell'immagine sulla mappa.
Dopo aver definito le opzioni necessarie, imposta la proprietà map
di questo oggetto per
aggiungere l'overlay.
Aggiungere un overlay
- Crea un nuovo oggetto
GMSGroundOverlay
- Imposta la proprietà
icon
su un'istanza di UIImage
.
- Imposta la proprietà
bounds
su un'istanza di GMSCoordinateBounds
. I
limiti rappresentano gli angoli sud-ovest e nord-est dell'immagine.
- Imposta le proprietà facoltative, ad esempio
bearing
e zoomLevel
, come preferisci.
- Imposta la proprietà
map
: l'immagine viene visualizzata sulla mappa.
L'esempio seguente mostra come aggiungere una sovrapposizione al suolo a un oggetto GMSMapView
esistente.
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;
Rimozione di una sovrapposizione
Puoi rimuovere un overlay del terreno dalla mappa impostando la proprietà
GMSGroundOverlay
di map
su nil
. In alternativa, puoi rimuovere tutti
gli overlay (inclusi quelli del suolo attualmente sulla mappa) chiamando il metodo
GMSMapView
clear
.
Objective-C
[mapView clear];
Se vuoi apportare modifiche a un overlay di terra dopo averlo aggiunto alla mappa, assicurati di conservare l'oggetto GMSGroundOverlay
. Puoi
modificare l'overlay del terreno in un secondo momento apportando modifiche a questo oggetto.
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;
Eventi
Puoi ascoltare gli eventi che si verificano sulla mappa, ad esempio quando un utente tocca un overlay. Per ascoltare gli eventi, devi implementare il protocollo
GMSMapViewDelegate
. Consulta la
guida agli eventi e l'elenco dei metodi su
GMSMapViewDelegate
.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-31 UTC.
[null,null,["Ultimo aggiornamento 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)."]]