MKCircle
fillColor
markerType が異なる場合、変更を加えようとしています。たとえば、markerType
「空港」の場合は塗りつぶしを赤にし、「水上飛行機基地」の場合は塗りつぶしを黒にする必要があります。
// MARK: Radius overlay
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKCircle {
let circle = MKCircleRenderer(overlay: overlay)
for markerType in airports {
if markerType.markerType == "airport" {
circle.strokeColor = UIColor.red
circle.fillColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0.1)
circle.lineWidth = 1
} else {
circle.strokeColor = UIColor.black
circle.fillColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.1)
circle.lineWidth = 1
}
}
return circle
} else {
return MKPolylineRenderer()
}
}
この関数を使用して半径を表示しています。
func mainAirportRadius(radius: CLLocationDistance) {
//MARK: Airport location
for coordinate in airports {
let center = coordinate.coordinate
let circle = MKCircle(center: center, radius: radius)
mapView.add(circle)
}
}
viewDidLoad
次に、メソッドで呼び出します
mainAirportRadius(radius: 8046.72)