首页 > 解决方案 > 当类型为 SatelliteFlyover 时,在 MapView 顶部显示 MKPolyline?

问题描述

我想MKPolylines在 MapKit 的 mapView 上展示一些。问题是当将地图类型设置为.satelliteFlyover我的折线时会消失。如果我改为只使用.satellite它们是可见的。

mapView.type = .satelliteFlyover
mapView.addOverlay(polyline)

标签: iosswiftxcodemapkitmkpolyline

解决方案


有类似的问题,我发现 iOS 13 中的 MKMultiPolylineRenderer 在处理天桥 MapType 上的折线时要好得多。您需要在数组中准备所有折线,以便您拥有所有可用的折线:

var multiArray = [MKPolyline]()
// CREATE ALL OF YOUR POLYLINES AND APPEND THEM TO multiArray
view.addOverlay(MKMultiPolyline(multiArray))

然后你需要创建一段代码来处理 MKMultiPolylines 中的func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer. 我从字面上复制了我的 MKPolyline 部分,只是将任何引用从 更改MKPolylineMKMultiPolyline

IDK 如果您无法将目标更改为 iOS 13 该怎么办。两种天桥地图类型在 iOS 13 之前都表现出类似的情况。我也遇到了 MKCircle 问题,我无法修复天桥地图类型。


推荐阅读