我正在努力检测在我的Google map 上绘制的GMSPolyline上是否被轻拍,它在GMSpolygones上也可以正常工作,但相同的方法似乎在polyline上却不起作用。我目前对多边形有效的方法是:
if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
...
}
关于如何检测折线上的抽头有什么建议吗?或者只是接近它?
最佳答案
根据API的documentation,GMSPolyline
继承自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)")
}