2014-10-06 70 views
1

我想添加覆蓋圖到iOS MapKit以顯示平面圖。但是,我不確定這樣做的最佳方式。如果我通過使用MKOverlay添加樓層平面圖,是否會遲緩地加載平面圖或者我是否需要找出正在顯示地圖的哪一部分,然後更新覆蓋層?我也看過使用MKTileOverlay,因爲它使用延遲加載,但我有一個印象,它應該用於完全覆蓋地圖,而不僅僅是添加到現有地圖。它是否正確?MapKit覆蓋圖添加樓層平面圖

回答

2

是的,你是對的MKTileOverlay可以用瓷磚覆蓋整個地圖,是的它使用延遲加載。

使用MKOverlay如果您不願意替換原生外觀和填充地圖。您也可以實現延遲加載MKOverlay

注:MKTileOverlay不會刪除您現存MKAnnotationsMKOverlay

+0

謝謝。是否爲MKOverlay自動使用延遲加載,還是需要以特殊方式配置它?另外,是否應將我的疊加添加到一個MKOverlayView,或每個疊加分開的MKOverlayView? – Jorn 2014-10-06 08:13:29

+0

對於'MKOverlay'爲延遲加載創建塊或後臺線程,不需要單獨創建,所有覆蓋將在相同的'MKOverlayView'上管理。 – Kampai 2014-10-06 08:52:22

0

MKOverlay是一個協議,而不是一個類。從iOS 7開始,您需要MKTileOverlay。根據當前顯示的地圖部分,延遲加載事物。

您可能會發現這個有用的瓷磚是如何編號,並組織了一個參考:

https://www.mapbox.com/foundations/how-web-maps-work/

至於覆蓋蘋果的地圖,這將在默認情況下發生的,但你也可以調整使用的MKOverlayLevel將其放置在Apple的基本地圖和標籤圖層之間,或者如果您想完全禁用Apple的地圖,則可以使用canReplaceMapContent = YES