我很新的谷歌地图API工作。我试图让用户可以通过按住标记从地图上删除标记。我知道谷歌地图内置了markerTapped函数以及didLongPressOnInfoWindow,但我似乎无法找到一种方法来检测标记本身的长按。长按删除谷歌地图GMSMarker
我想知道是否有人知道在标记本身上实现长按手势识别器的方法?或者,如果可能有更直观的方式从地图中删除标记,而不是长按标记?
在此先感谢
我很新的谷歌地图API工作。我试图让用户可以通过按住标记从地图上删除标记。我知道谷歌地图内置了markerTapped函数以及didLongPressOnInfoWindow,但我似乎无法找到一种方法来检测标记本身的长按。长按删除谷歌地图GMSMarker
我想知道是否有人知道在标记本身上实现长按手势识别器的方法?或者,如果可能有更直观的方式从地图中删除标记,而不是长按标记?
在此先感谢
要移除标记
在斯威夫特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
@ThatOneGuy请你检查更新答案 – Rex
根据您的标记的用途,可以更直观地使用自定义视图作为标记的信息窗口,并在自定义视图上有一个按钮,用户可以点击以删除标记。你也可以在UI上的某个按钮上点击按钮(某种删除按钮)时删除所选标记。删除标记的最直观的方式是部分个人偏好,部分是标记所标记的。 – RPatel99