我在尝试检测Google地图上绘制的GMSPolyline的轻触操作,对于GMSpolygones它可以正常工作,但是相同的方法似乎无法用于polyline。我的当前方法适用于polygones:
if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
...
}
有什么建议可以检测折线上的轻触?或者接近它?
我在尝试检测Google地图上绘制的GMSPolyline的轻触操作,对于GMSpolygones它可以正常工作,但是相同的方法似乎无法用于polyline。我的当前方法适用于polygones:
if (GMSGeometryContainsLocation(coordinate, polygon.path!, false)) {
...
}
有什么建议可以检测折线上的轻触?或者接近它?
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)")
}
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
//Write your code here
}
GMSPolygon
,因为它也继承自GMSOverlay
。