我正在通過子類化MKPolygonView並覆蓋drawMapRect:zoomScale在MKMapView上繪製圖像(2.5 MB,PNG圖像數據,1240 x 1240,8位/顏色RGBA,非隔行掃描) :inContext的: - 方法如下:加速OverlayView繪圖
-(void) drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context {
CGRect theRect = [self rectForMapRect:overlayRect];
CGRect clipRect = [self rectForMapRect:mapRect];
CGContextClipToRect(context, clipRect);
CGContextDrawImage(context, theRect, imageReference);
}
overlayRect
是MKMapRect
限定所述地圖(硬編碼和初始化在initWithOverlay:
) imageReference
保持對所述的基準上的圖像的位置和大小圖像,加載在UIImage中並通過調用獲得在UIImage
實例(也initWithOverlay:
)
我的MKMapView需要8-14秒之間繪製圖像地圖上的第一次,放大時分辨率更高重繪瓷磚再次採取大約在同一時間。 這似乎真的很長,我想知道是否我做了任何根本性錯誤,因爲這是我第一次使用MapKit。
這不是一個2.5 MB圖像這是一個1024×1024的8位/彩色圖像。解壓縮如此大的圖像需要時間。我鼓勵你閱讀Bill Dudney關於加載圖像的簡短的ibook(在iBookStore中)。 –