0
我无法弄清楚如何使用用户输入从提示询问半径来创建我正在创建的圆。我从另一个类继承userMapView,但不对该类中的overlay渲染做任何事情,所以直到现在我才使用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