如何使 MGLPolyline 可点击?

How to make a MGLPolyline tapable?

我目前正在寻找一种使路线 (MGPLPolyline) 可点击的方法,以便用户可以在 Mapbox 下的两条可能路线之间进行选择。不幸的是,路线注释似乎根本无法点击:

虽然我已经正确设置了我的 MGLMapViewDelegate 这个方法:

func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation)

从未被调用。

知道每一行都继承自 MGLPolylineMGLAnnotation 的子类(我希望它是可点击的...),我错过了什么。

Mapbox iOS API 还不支持,很遗憾。 See here.

其中有一些解决方法 link 您可以尝试。

更新: 这现在是可能的:

您可以执行以下操作:

首先,当您创建折线时,请执行以下操作:

let polyline = CustomPolyline(coordinates: &coordinates, count: UInt(coordinates.count))

polyline.title = "" //It does not seem to matter what you set it to.

polyline.color = .darkGray

然后在下面的方法中return false:

 func mapView(_ mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -> Bool {
    // Always allow callouts to popup when annotations are tapped.
    print("ran?")
    return false
}