Я использую следующий код, чтобы увидеть, когда маркеры выходят на экран:
let visibleRegion = mapView.projection.visibleRegion()
let bounds = GMSCoordinateBounds(region: visibleRegion)
for i in stride(from: 0, to: markers.count, by: 1){
let marker = markers[i]
if bounds.contains(marker.position) {
print("Is present on screen")
print(marker.position)
} else {
// Marker not on the screen
}
}
Это работает, и когда я прокручиваю карту поверх маркера, я получаю распечатку.
У меня есть 30 тыс. Маркеров, которые мне нужно разместить на карте. Маркеры отображаются на разных уровнях масштабирования, и их нужно загружать только после того, как пользователь сможет их увидеть.
Маркер представляет собой округлое изображение, так как вы представляете себе, что загрузка 30 тысяч картинок на карту - огромная задача.
У меня есть JSON, который я загружаю в Lon / Lat / ImageURL.
Нужно ли отключать маркеры, когда они покидают экран, и инициировать их, когда они появляются на экране? Используются ли аннотации карты Google как ячейка таблицы? Должен ли я создавать маркер только тогда, когда местоположение из моего JSON находится в границах карты, или я могу создать их и добавить их на карту только после того, как они окажутся в границах? Какие инструменты оптимизации мне следует использовать?
Спасибо за любые советы здесь