2017-08-05 3 views
0

Ich bin ziemlich neu in der Arbeit mit der Google Maps API. Ich versuche, dem Benutzer die Möglichkeit zu geben, einen Marker aus der Karte zu löschen, indem er den Marker drückt und festhält. Ich weiß, dass Google Maps eine integrierte Funktion für markerTapped sowie didLongPressOnInfoWindow hat, aber ich konnte keine Möglichkeit finden, einen langen Druck auf den Marker selbst zu erkennen.Löschen Google Maps GMSMarker auf lange drücken

Ich fragte mich, ob jemand wusste, wie man einen langen Druck Gestenerkennung auf dem Marker selbst implementieren? Oder wenn es vielleicht eine intuitivere Möglichkeit gibt, einen Marker aus einer Karte zu löschen, als lange auf den Marker zu drücken?

Vielen Dank im Voraus

+0

Je nachdem, wofür Ihre Markierungen vorgesehen sind, ist es möglicherweise intuitiver, eine benutzerdefinierte Ansicht für die Infofenster Ihrer Markierungen zu verwenden und eine Schaltfläche in der benutzerdefinierten Ansicht zu verwenden, auf die der Benutzer tippen kann, um die Markierung zu entfernen. Sie könnten auch eine Schaltfläche irgendwo auf der Benutzeroberfläche haben, die die ausgewählte Markierung entfernt, wenn Sie auf die Schaltfläche tippen (eine Art Schaltfläche zum Löschen). Die einfachste Art, einen Marker zu löschen, ist zum Teil die persönliche Präferenz und zum Teil, was der Marker markiert. – RPatel99

Antwort

0

Um einen Marker

In Swift 3

//Press on Button Forcefully for long time 
let pressHold = UILongPressGestureRecognizer(target: self, action: #selector(pressHolding(sender:)) 
self.mapView.addGestureRecognizer(pressHold) 

//Handle in pressHolding Function 
func pressHolding(recognizer: UILongPressGestureRecognizer) 
{ 
    if (recognizer.state == UIGestureRecognizerState.Began) 
    { 
     //Here you can do your task like delete or edit on market etc:- 
    } 
} 

//This is long Press function:- 
func mapView(mapView: GMSMapView!, didLongPressAtCoordinate coordinate: CLLocationCoordinate2D) { 
    //Here handle your long press on map marker like:- 
    let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) 
    let mapView = GMSMapView.map(withFrame: .zero, camera: camera) 
    mapView.clear() 
} 

Here you can find Objective-C and Swift All available Function of Markers

Hoffe, es wird Ihnen helfen, eine Menge zu entfernen.

+0

Sorry, wenn ich nicht klar war. Ich frage, wie man einen langen Druck auf einen Marker erkennt und nicht wie man ihn von der Karte entfernt. – ThatOneGuy

+0

@ ThatOneGuy überprüfen Sie bitte das Update Antwort – Rex