Ios 在Swift中检测到GMSPolyline上的抽头?
我正在努力检测谷歌地图上绘制的GMSPolyline上的点击,它对GMSpolygones很有效,但同样的方法似乎不适用于多段线。我目前对polygones有效的方法是:Ios 在Swift中检测到GMSPolyline上的抽头?,ios,swift,google-maps,polygon,polyline,Ios,Swift,Google Maps,Polygon,Polyline,我正在努力检测谷歌地图上绘制的GMSPolyline上的点击,它对GMSpolygones很有效,但同样的方法似乎不适用于多段线。我目前对polygones有效的方法是: if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) { ... } 有没有关于如何检测多段线上的轻敲的建议?或者就在它附近?根据他们的API,GMSPolyline继承自GMSOverlay,这意味着GMSPolyline具有属性tap
if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
...
}
有没有关于如何检测多段线上的轻敲的建议?或者就在它附近?根据他们的API,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)")
}
您可以使用GMSPolyline的
isTappable
属性
可移植
如果此覆盖会导致点击通知
polyline.isTappable=true
GMSPolyline
继承自GMSOverlay
。因此,要检测点击覆盖GMSMapViewDelegate
提供了一种委托方法:
- mapView:didTapOverlay:在点击覆盖后调用
GMSMapViewDelegate
方法didTapOverlay
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
//Write your code here
}
此外,此方法还可用于GMSPolygon
,因为它也继承自GMSOverlay
有关更多信息,请参阅