2017-08-05 61 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