Наложения MapKit для добавления планов этажей на карту

Я пытаюсь добавить наложение в iOS MapKit, чтобы показать планы этажей. Однако я не уверен, как лучше всего это сделать. Если я добавлю планы этажей с помощью MKOverlay, будут ли планы этажей загружаться лениво или мне нужно будет выяснить, какая часть карты отображается, и после этого обновить наложения? Я также смотрел на использование MKTileOverlay, так как он использует ленивую загрузку, но у меня сложилось впечатление, что его следует использовать для полного покрытия карты, а не только для добавления к существующей. Это верно?


person Jorn    schedule 06.10.2014    source источник


Ответы (2)


Да, вы правы, MKTileOverlay можно покрыть всю карту тайлами, и да, это использует ленивую загрузку.

Используйте MKOverlay, если вы не хотите заменять родной вид и заливку карты. Вы также можете добиться ленивой загрузки для MKOverlay.

Примечание. MKTileOverlay не удалит уже существующие MKAnnotations и MKOverlay.

person Kampai    schedule 06.10.2014
comment
Спасибо. Ленивая загрузка используется автоматически для MKOverlay, или мне нужно настроить ее особым образом? Кроме того, следует ли добавлять мои оверлеи в один MKOverlayView или в отдельный MKOverlayView для каждого оверлея? - person Jorn; 06.10.2014
comment
Для MKOverlay создайте блок или фоновый поток для ленивой загрузки и НЕ НУЖНО создавать отдельный, все оверлеи будут управляться одним MKOverlayView. - person Kampai; 06.10.2014

MKOverlay — это протокол, а не класс. Вы хотите MKTileOverlay с iOS 7. Вещи загружаются лениво в зависимости от того, какая часть карты отображается в данный момент.

Вы можете найти это полезным в качестве справки о том, как плитки нумеруются и организованы:

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

Что касается покрытия карты Apple, это произойдет по умолчанию, но вы также можете настроить MKOverlayLevel, используемый для размещения его между базовой картой Apple и слоем меток, или вы можете использовать canReplaceMapContent = YES, если хотите полностью отключить карты Apple.

person incanus    schedule 06.10.2014