如何在谷歌地图中点击标记

时间:2017-04-01 17:45:07

标签: ios swift google-maps

我正在使用谷歌地图,我将标记设置为我的地图,如下所示:

var marker = GMSMarker(position: CLLocationCoordinate2D(latitude: Double(item.lat)!, longitude: Double(item.lon)!))


 marker.map = mapview

现在,我想检测用户何时点击这些标记。

我该怎么办?

2 个答案:

答案 0 :(得分:4)

您应该在mapview

中将self代表设为UIViewController viewDidLoad
self.mapview.delegate = self

您的UIViewController

extension ViewControllerClass: GMSMapViewDelegate {
    //class code

    @objc(mapView:didTapMarker:) func mapView(_: GMSMapView, didTap marker: GMSMarker) -> Bool {
        //do something
        return true
    }
}

也许这种方法可以通过其他方式实现,但Xcode迫使我在从Swift 2迁移到Swift 3时采用这种方式

答案 1 :(得分:2)

适用于Swift 3

你可以实现GMSMapViewDelegate这样的事情:

extension YourViewConytoller: GMSMapViewDelegate {
    func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
        print ("MarkerTapped Locations: \(marker.position.latitude), \(marker.position.longitude)")
        return true
    }
}