Eventi e gesti dell'indicatore
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Quando vengono impostate proprietà specifiche dei marcatori avanzati, puoi monitorare gli eventi dei marcatori
come i tocchi e le gesture.
Se viene toccato un indicatore, è possibile visualizzare informazioni aggiuntive come il titolo
o lo snippet dell'indicatore. È anche possibile spostare i marcatori trascinabili utilizzando una pressione prolungata.
Rispondere agli eventi dei marcatori
Puoi rispondere agli eventi marcatore aggiungendo
il protocollo GMSMapViewDelegate
alla visualizzazione e
implementando il callback corrispondente. Questo esempio identifica title
e
snippet
per un indicatore selezionato.
Swift
// MARK: GMSMapViewDelegate
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
if let title = marker.title {
if let snippet = marker.snippet {
print("marker title: \(title): snippet: \(snippet)")
}
}
return true
}
Objective-C
// MARK: GMSMapViewDelegate
- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
if (marker.title && marker.snippet) {
NSLog(@"marker with title:%@ snippet: %@", marker.title, marker.snippet)
}
return YES;
}
Controllare la visibilità dei marker in base al livello di zoom della mappa
Per controllare la visibilità di GMSMarker
, implementa il protocollo
GMSMapViewDelegate
e aggiungi una condizione per impostare
GMSMarker.map
.
Swift
// MARK: GMSMapViewDelegate
func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
marker.map = position.zoom >= 14 ? mapView : nil
}
Objective-C
// MARK: GMSMapViewDelegate
- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
marker.map = position.zoom >= 14 ? mapView : nil;
}
Rendere trascinabile un indicatore
Quando attivi la proprietà draggable
, gli utenti possono trascinare i segnaposto sulla mappa con
un gesto di pressione prolungata. Per rendere trascinabile un indicatore, imposta la proprietà GMSMarker.draggable
su true.
Swift
marker.draggable = true
Objective-C
marker.draggable = YES;
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\u003eGoogle Maps SDK for iOS allows you to monitor marker events like taps and gestures, displaying information like title and snippet when tapped.\u003c/p\u003e\n"],["\u003cp\u003eYou can enable marker dragging using a long press gesture by setting the \u003ccode\u003eGMSMarker.draggable\u003c/code\u003e property.\u003c/p\u003e\n"],["\u003cp\u003eMarker visibility can be controlled based on the map's zoom level using the \u003ccode\u003eGMSMapViewDelegate\u003c/code\u003e and setting the \u003ccode\u003eGMSMarker.map\u003c/code\u003e property conditionally.\u003c/p\u003e\n"],["\u003cp\u003eTo respond to marker events and access details like title and snippet, implement the \u003ccode\u003eGMSMapViewDelegate\u003c/code\u003e protocol and its corresponding callback methods.\u003c/p\u003e\n"]]],["Markers' events, like taps and gestures, can be monitored by adding `GMSMapViewDelegate`. Tapped markers reveal their title and snippet, set using `GMSMarker.title`. Markers can be made draggable with `GMSMarker.draggable`, allowing movement via long press. You can control marker visibility based on zoom level by setting `GMSMarker.map` within the `GMSMapViewDelegate` callback. Implementing the delegate protocol also allows for handling custom responses to specific marker interactions.\n"],null,["When specific advanced marker properties are set, you can monitor marker events\nsuch as taps and [gestures](/maps/documentation/ios-sdk/controls#map_gestures).\nIf a marker is tapped, one can see additional information such as a marker title\nor snippet. One can also move draggable markers using a long press gesture.\n\n- To track marker events, add the [`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate) to your `view`.\n- To make a marker draggable, set the [`GMSMarker.draggable`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSMarker#draggable) property.\n- To set descriptive text for a marker, use the [`GMSMarker.title`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSOverlay#title) property.\n\nRespond to marker events\n\nYou can respond to [marker events](/maps/documentation/ios-sdk/events) by adding\nthe [`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate) protocol to your view and\nimplementing the corresponding callback. This example identifies the `title` and\n`snippet` for a selected marker. \n\nSwift \n\n```swift\n// MARK: GMSMapViewDelegate\n\nfunc mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -\u003e Bool {\n if let title = marker.title {\n if let snippet = marker.snippet {\n print(\"marker title: \\(title): snippet: \\(snippet)\")\n }\n }\n return true\n}\n```\n\nObjective-C \n\n```objective-c\n// MARK: GMSMapViewDelegate\n\n- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {\n if (marker.title && marker.snippet) {\n NSLog(@\"marker with title:%@ snippet: %@\", marker.title, marker.snippet)\n }\n return YES;\n}\n```\n\nControl marker visibility by map zoom level\n\nTo control the visibility of [`GMSMarker`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSMarker), implement the\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate) protocol and add a condition to set\n`GMSMarker.map`. \n\nSwift \n\n```swift\n// MARK: GMSMapViewDelegate\n\nfunc mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {\n marker.map = position.zoom \u003e= 14 ? mapView : nil\n}\n```\n\nObjective-C \n\n```objective-c\n// MARK: GMSMapViewDelegate\n\n- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {\n marker.map = position.zoom \u003e= 14 ? mapView : nil;\n}\n```\n\nMake a marker draggable\n\nWhen you enable the `draggable` property users can drag markers on the map with\na long press gesture. To make a marker draggable, set the `GMSMarker.draggable`\nproperty to true. \n\nSwift \n\n```swift\nmarker.draggable = true\n```\n\nObjective-C \n\n```objective-c\nmarker.draggable = YES;\n```"]]