我对使用谷歌地图API很陌生。我正在尝试为用户提供通过按住标记从地图中删除标记的选项。我知道谷歌地图有一个内置的标记功能,以及LongPressOnInfoWindow,但我似乎找不到一种方法来检测标记本身的长按。
我想知道是否有人知道在标记本身上实现长按手势识别器的方法?或者,也许有一种比长按标记更直观的方法从地图中删除标记?
提前致谢
删除标记
在斯威夫特 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()
}
在这里你可以找到Objective-C和Swift所有可用的标记功能。
希望它能对你有很大帮助。