【问题标题】:Delete Google Maps GMSMarker on Long Press长按删除谷歌地图 GMSMarker
【发布时间】:2017-08-05 02:04:02
【问题描述】:

我对使用 google maps api 还是很陌生。我试图让用户选择通过按住标记从地图中删除标记。我知道谷歌地图有一个用于 markerTapped 以及 didLongPressOnInfoWindow 的内置函数,但我似乎无法找到一种方法来检测标记本身的长按。

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

提前致谢

【问题讨论】:

  • 根据标记的用途,为标记的信息窗口使用自定义视图并在自定义视图上有一个按钮,用户可以点击该按钮来删除标记,这可能更直观。您还可以在 UI 上的某处有一个按钮,当点击按钮时删除选定的标记(某种删除按钮)。删除标记最直观的方法部分是个人喜好,部分是标记所标记的内容。

标签: ios swift google-maps swift3 maps


【解决方案1】:

移除标记​​strong>

在 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

希望对你有很大帮助。

【讨论】:

  • 对不起,如果我不清楚。我问的是如何检测标记上的长按,而不是如何将其从地图中删除。
  • @ThatOneGuy 你找到实现长按标记的方法了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 2014-06-08
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多