0
半径を求めるプロンプトからユーザの入力を使って作成している円をどのようにレンダリングするのか分かりません。私は別のクラスからuserMapViewを継承しますが、そのクラスのオーバーレイレンダリングで何もしないので、今までrendererForOverlay関数を使用していませんでした。親クラスにその関数を追加する必要がありますか、間違って何かしていますか?地図上に円を描くことはできません
@IBAction func addGeoFencePushed(_ sender: Any) {
let alertController = UIAlertController(title: nil, message: "How large would you like the geofence to be?", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "Confirm", style: .default) { (_) in
if let field = alertController.textFields?[0] {
// store your data
ALGlobal.sharedInstance.globalDefaults.set(field.text! as String, forKey: "geoFenceSize")
let rad = field.text!
self.drawGeoFence(radius: rad)
} else {
// user did not fill field
}
}
self.present(alertController, animated: true, completion: nil)
}
func drawGeoFence(radius: String){
let bagList = ALGlobal.sharedInstance.bagLists
let bag = bagList?[0]
let center = CLLocationCoordinate2D(
latitude: CLLocationDegrees.init(bag!.latitude),
longitude: CLLocationDegrees.init(bag!.longitude))
let circle = MKCircle(center: center, radius: Double(radius)!)
userMapView.add(circle)
}
func mapView(mapView: MKMapView,rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.fillColor = UIColor.blue.withAlphaComponent(0.1)
circleRenderer.strokeColor = UIColor.blue
circleRenderer.lineWidth = 1
return circleRenderer
}
私はあなたがこれについてコンパイラ警告を受け取っていないのに驚いています。 – matt