Я поставил кнопку, чтобы добавить наложение круга к заданной точке.Однако я не знаю почему, но пока регион не изменился, моего наложения не было видно.
Я не смог найти функцию, которая обновляет или перезагружает карту.Поэтому, наконец, я решил немного изменить регион карты, чтобы пользователь не был обеспокоен.(Немного уменьшите масштаб, например).
self.mapView.setRegion(mapView.region, animated: true)
Я ожидаю, что приведенный выше код не изменяет регион карты, как это происходит, и я также попробовал это,
self.mapView.setRegion(MKCoordinateRegion(mapView.visibleMapRect), animated: true)
Этотакже изменил регион карты.
Что я могу сделать?
И вот как я добавляю свои оверлеи
func addCircles() {
let center = self.myPinView.center
let origin = self.mapView.convert(center, toCoordinateFrom: mapView)
let overlay1 = MKCircle(center: origin, radius: 3)
let overlay2 = MKCircle(center: origin, radius: 7.5)
let overlay3 = MKCircle(center: origin, radius: 15)
self.mapView.addOverlay(overlay1)
self.mapView.addOverlay(overlay2)
self.mapView.addOverlay(overlay3)
}
И это мой делегат func
func mapView (_mapView: MKMapView, средство визуализацииДля наложения: MKOverlay) -> MKOverlayRenderer {
if overlay is MKCircle {
let circle = MKCircleRenderer(overlay: overlay)
circle.fillColor = circle.fillColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0.6)
circle.strokeColor = .red
return circle
} else {
return MKOverlayRenderer()
}
}