2017-08-05 62 views
0

我很新的谷歌地图API工作。我试图让用户可以通过按住标记从地图上删除标记。我知道谷歌地图内置了markerTapped函数以及didLongPressOnInfoWindow,但我似乎无法找到一种方法来检测标记本身的长按。长按删除谷歌地图GMSMarker

我想知道是否有人知道在标记本身上实现长按手势识别器的方法?或者,如果可能有更直观的方式从地图中删除标记,而不是长按标记?

在此先感谢

+0

根据您的标记的用途,可以更直观地使用自定义视图作为标记的信息窗口,并在自定义视图上有一个按钮,用户可以点击以删除标记。你也可以在UI上的某个按钮上点击按钮(某种删除按钮)时删除所选标记。删除标记的最直观的方式是部分个人偏好,部分是标记所标记的。 – RPatel99

回答

0

要移除标记

在斯威夫特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

希望它会帮助你很多。

+0

对不起,如果我不清楚。我在问如何检测标记上的长按,而不是如何从地图上删除它。 – ThatOneGuy

+0

@ThatOneGuy请你检查更新答案 – Rex