Полилиния iOS15 не отображается на карте.
Я попытался добавить полилинию от местоположения пользователя к месту назначения, используя следующий код. Я уверен, что я выполнил делегат и удостоверился, что пользователь находится в режиме authorAlway в статусе авторизации. Однако консоль сгенерировала это сообщение об ошибке, в котором говорилось: « [UserSession] сопоставляет запрошенный короткий сеанс, но совместное использование сеанса не включено ». Я не могу найти ничего, связанного с тем, как решить эту ошибку.
func generatePolyLine(toDestination destination: MKMapItem) {
let request = MKDirections.Request()
//start from the user's current location to find the ride
request.source = MKMapItem.forCurrentLocation()
request.destination = destination
request.transportType = .automobile
let directionRequest = MKDirections(request: request)
directionRequest.calculate { response, error in
if let error = error {
print("Error calculating direction request \(error)")
}
guard let response = response else { return }
self.route = response.routes.first
guard let polyLine = self.route?.polyline else { return }
self.mapView.addOverlay(polyLine, level: .aboveRoads)
}
}
1 ответ
Вы добавили метод делегата, чтобы указать средство визуализации? Что-то типа:
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let polyline = overlay as? MKPolyline {
let renderer = MKPolylineRenderer(polyline: polyline)
renderer.lineWidth = 3.0
renderer.alpha = 0.5
renderer.strokeColor = UIColor.blue
return renderer
}
if let circle = overlay as? MKCircle {
let renderer = MKCircleRenderer(circle: circle)
renderer.lineWidth = 3.0
renderer.alpha = 0.5
renderer.strokeColor = UIColor.blue
return renderer
}
return MKCircleRenderer()
}