2012-05-01 67 views
0

我正在通過子類化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); 

}

overlayRectMKMapRect限定所述地圖(硬編碼和初始化在initWithOverlay:imageReference保持對所述的基準上的圖像的位置和大小圖像,加載在UIImage中並通過調用獲得在UIImage實例(也initWithOverlay:

我的MKMapView需要8-14秒之間繪製圖像地圖上的第一次,放大時分辨率更高重繪瓷磚再次採取大約在同一時間。 這似乎真的很長,我想知道是否我做了任何根本性錯誤,因爲這是我第一次使用MapKit。

+0

這不是一個2.5 MB圖像這是一個1024×1024的8位/彩色圖像。解壓縮如此大的圖像需要時間。我鼓勵你閱讀Bill Dudney關於加載圖像的簡短的ibook(在iBookStore中)。 –

回答