我正在努力检测在我的Google map 上绘制的GMSPolyline上是否被轻拍,它在GMSpolygones上也可以正常工作,但相同的方法似乎在polyline上却不起作用。我目前对多边形有效的方法是:

if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
    ...
}

关于如何检测折线上的抽头有什么建议吗?或者只是接近它?

最佳答案

根据API的documentationGMSPolyline继承自GMSOverlay,这意味着GMSPolyline具有tappable属性。所以你想要这样的东西

let polyLine: GMSPolyline = GMSPolyline(path: newPath)
polyLine.isTappable = true
polyline.zIndex = 0
polyline.map = yourGoogleMap

然后,您的GMSMapViewDelegate应该使用此功能通知您GMSPolyline层内任意位置的点击
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay)
{
  print(overlay.zindex)
  print("User Tapped Layer: \(overlay)")
}

07-27 19:06