2016-08-30 41 views
0

我正在用MKTileOverlay提供一個MKMapView替換地圖內容。備用磁貼提供程序僅升級至縮放級別15.如果用戶縮放超過縮放級別15,則它將縮放地圖上的級別15磁貼,而不是變爲空白。Mapkit - 當存在多邊形時不會渲染的過度自定義圖塊

但是,如果地圖區域中存在MKPolygon或MKPolyline,則它只會顯示形狀。它將不再在其下面呈現襯墊。這隻發生在你過度縮放時。

我已經看到了一些關於MapKit中過度縮放的討論,但它們都似乎與iOS 7之前的版本有關,當時大量的地圖似乎發生了變化。

有沒有人有這方面的經驗?

回答

0

我意識到我完全誤解了MapKit爲Map Tiles提供的功能。

當我放大,看到我的瓷磚渲染,我認爲這是一個過度縮放功能。當具有多邊形的區域沒有將這些地圖塊渲染爲這些縮放級別時,我認爲多邊形渲染器以某種方式關閉了拼貼渲染器。事實證明,因爲放大級別中唯一活動的渲染器是Polygon渲染器,它是畫布中唯一被重畫的部分,所以畫布的其餘部分仍然顯示它已經在那裏顯示的內容。

在深入淺出條款:

地圖塊渲染告訴地圖‘我可以畫在縮放級別0-5的大片地區。’多邊形渲染器會告訴地圖「我可以在所有縮放級別繪製這個小區域。」

當我處於縮放級別5時,Map Tile Renderer和Polygon Renderer都會啓動並繪製它們可以處理的區域。當我進入縮放級別6時,只有Polygon Renderer啓動。地圖上說:「我有一個渲染器可以在這個區域繪製,所以我要用這些信息重繪它。」由於地圖平鋪渲染器不提供縮放級別6的圖塊,因此它不會啓動。地圖的其餘部分仍然有瓷磚,因爲沒有可以爲其繪製的渲染器,所以地圖只是保留了它已經在畫布上顯示的內容。 dr:我誤認爲MapKit不會將過多的繪製調用作爲過度縮放功能。