如何使 MGLPolyline 可点击?
How to make a MGLPolyline tapable?
我目前正在寻找一种使路线 (MGPLPolyline) 可点击的方法,以便用户可以在 Mapbox 下的两条可能路线之间进行选择。不幸的是,路线注释似乎根本无法点击:
虽然我已经正确设置了我的 MGLMapViewDelegate
这个方法:
func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation)
从未被调用。
知道每一行都继承自 MGLPolyline
是 MGLAnnotation
的子类(我希望它是可点击的...),我错过了什么。
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
}
我目前正在寻找一种使路线 (MGPLPolyline) 可点击的方法,以便用户可以在 Mapbox 下的两条可能路线之间进行选择。不幸的是,路线注释似乎根本无法点击:
虽然我已经正确设置了我的 MGLMapViewDelegate
这个方法:
func mapView(_ mapView: MGLMapView, didSelect annotation: MGLAnnotation)
从未被调用。
知道每一行都继承自 MGLPolyline
是 MGLAnnotation
的子类(我希望它是可点击的...),我错过了什么。
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
}