Я пытаюсь добавить наложение в iOS MapKit, чтобы показать планы этажей. Однако я не уверен, как лучше всего это сделать. Если я добавлю планы этажей с помощью MKOverlay, будут ли планы этажей загружаться лениво или мне нужно будет выяснить, какая часть карты отображается, и после этого обновить наложения? Я также смотрел на использование MKTileOverlay, так как он использует ленивую загрузку, но у меня сложилось впечатление, что его следует использовать для полного покрытия карты, а не только для добавления к существующей. Это верно?
Наложения MapKit для добавления планов этажей на карту
Ответы (2)
Да, вы правы, MKTileOverlay
можно покрыть всю карту тайлами, и да, это использует ленивую загрузку.
Используйте MKOverlay
, если вы не хотите заменять родной вид и заливку карты. Вы также можете добиться ленивой загрузки для MKOverlay
.
Примечание. MKTileOverlay
не удалит уже существующие MKAnnotations
и MKOverlay
.
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.