#ios #swift #iphone #mkmapview #mkoverlay
Вопрос:
Я использую MKOverlay для рисования изображения по 4 широтным/длинным точкам
Но не уверен, что изображение будет повернуто. Смотрите изображение платы поверх MKMapView. Это изображение на доске корзины должно быть вписано в координаты A, B, C, D. E-координата центра.
вот код
let upperleft = MKMapPoint(b.coordinate)
let lowerRight = MKMapPoint(d.coordinate)
let mapRect = MKMapRect(x: fmin(upperleft.x,lowerRight.x), y: fmin(upperleft.y,lowerRight.y), width: fabs(upperleft.x-lowerRight.x), height: fabs(upperleft.y-lowerRight.y));
let overlay = ImageOverlay(image: #imageLiteral(resourceName: "blank_court"), rect: mapRect, center: center.coordinate)
mapView.addOverlay(overlay)
Здесь определен класс
class ImageOverlay : NSObject, MKOverlay {
var coordinate: CLLocationCoordinate2D
let image:UIImage
let boundingMapRect: MKMapRect
init(image: UIImage, rect: MKMapRect, center: CLLocationCoordinate2D) {
self.image = image
self.boundingMapRect = rect
self.coordinate = center
}
}
class ImageOverlayRenderer : MKOverlayRenderer {
override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext) {
guard let overlay = self.overlay as? ImageOverlay else {
return
}
let rect = self.rect(for: overlay.boundingMapRect)
UIGraphicsPushContext(context)
overlay.image.draw(in: rect)
UIGraphicsPopContext()
}
}
Комментарии:
1. A-верхний левый, а C-нижний правый
2. Да, ТониМкену, я уже пробовал с A и C, а также. Но не повезло