2013-07-08 45 views
2

更具體地說... iOS的MapKit框架在渲染之前是否內置了MKPolyline和MKPolygon疊加層的泛化?MapKit推廣MKOverlays嗎?

模擬器顯示相當粗糙,顯示由幾百個點組成的多條折線。我是否達到了iPhone的抽獎表現的高峯,還是MapKit未編程爲自動概括數據,從而突出了設備的抽獎表現?

我知道我可以做一個測試用例來進行比較,但是爲測試用例創建/集成這樣的算法是相當密集的。我希望有人在這之前有一些內在的需要訴諸於此。

謝謝!

+0

當你說'粗糙',你是什麼意思?疊加層似乎被渲染成位圖,然後在地圖上繪製位圖 - 位圖將按比例縮放一定量,然後在縮放變化很大的情況下重新繪製。 –

回答

1

我不知道該generalize一部分,但你也許可以通過其他方法來維持性能達:

多MKPolygons等造成嚴重的內存使用的地圖上繪製時。這是由於MapKit沒有重用覆蓋。由於註釋具有reuseWithIdentifier,所以疊加不會。每個疊加層都會在地圖上創建一個新圖層作爲MKOverlayView,並在其中添加疊加層。以這種方式,內存使用率將會非常快地上升,並且滾動變爲......讓我們說呆滯到幾乎不可能。

因此有一個解決方法:您可以將所有MKOverlay(在您的情況下MKPolygons和MKPolylines)添加到一個MKOverlayView中,而不是單獨繪製每個覆蓋圖。這樣你實際上只創建一個MKOverlayView,因此不需要重用。

this question中的答案包含Apple解決方案的鏈接。

我已經用多種方式使用這種方法MKPolygons,它工作得很好。此外,我計劃在將來爲我的應用使用MKPolylines。我相信有可能把它們全部繪製在一起MKOverlayView ...

使用這種方法你可能不需要generalize MKPolygon覆蓋圖。此外,它更容易實施和測試國際海事組織;-)