Я хотел бы нарисовать немного Geodesi c Полилинии (линия большого круга) между точками на Земле, используя тип карты Спутникового эстакады.
// in viewDidLoad()
mapView.mapType = .satelliteFlyover
let geodesic = MKGeodesicPolyline(coordinates: [route.airport1, route.airport2], count: 2)
self.mapView.addOverlay(geodesic)
// rendering method
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
guard let polyline = overlay as? MKPolyline else {
print("else??")
return MKOverlayRenderer(overlay: overlay)
}
let renderer = MKPolylineRenderer.init(polyline: polyline)
renderer.lineWidth = 1
renderer.strokeColor = .systemTeal
return renderer
}
Я могу создать GeodesicPolyline частично, но линии не завершены.
Если я нахожусь в iOS системном темном режиме, строка отображается под «ночной зоной».
В то время как линия отображается под «дневной зоной», если темный режим отключен.
Я также пытался использовать
self.mapView.addOverlay(geodesic, level: .aboveLabels)
self.mapView.addOverlay(geodesic, level: .aboveRoads)
, но также не помог. Любой тип карты, кроме SatelliteFlyover или HybridFlyover, работает хорошо. Я нашел аналогичные топи c, но решения пока нет.