Для установки значка на GMSMarker
в Google Maps SDK
требуется UIImage
, но в настоящее время мои требования заключаются в загрузке его из определенного URL
Проблема
Проблема в том, что почему-то иногда показывается только последний элемент. Это код того, как я создаю маркеры (Обновлено в Swift)
func createMarkers() {
mapView.clear()
let mapCoordinates: [CLLocationCoordinate2D] = coordinates()
let iconURLs: [URL] = imageURLs()
var marker = GMSMarker()
for i in 0..<mapCoordinates.count {
let imageURL = iconURLs[i]
marker = GMSMarker()
marker.position = mapCoordinates[i]
marker.map = mapView
downloadImage(from: imageURL) { image in
marker.icon = image
}
}
}
// It is a helper function calling `SDWebImage` which caches the `UIImage` based on its `URL` string
func downloadImage(from url: URL, completion: @escaping (UIImage) -> Void)
Из приведенного выше кода у меня возникают проблемы при первой загрузке данных, потому что булавки отображаются на карте, но без изображения. Если через какое-то время снова вызвать createMarkers()
, значки загружаются корректно.
Я не знаю, почему это происходит, какие-либо предложения или подсказки, чтобы решить эту проблему?