Как я уже сказал в заголовке, я хочу обновить маркеры карты (удалить или добавить) на основе уровня масштабирования.
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
for locations in listLocations {
let lat = locations.location.latitude
let lon = locations.location.longitude
DispatchQueue.main.async{
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(lat, lon)
marker.map = self.mapView
let camera = GMSCameraPosition.camera(withLatitude: lat, longitude:lon, zoom:16)
self.mapView.animate(to: camera)
}
}
//let location = locations.last
//self.locationManager.stopUpdatingLocation()
}
func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
print(mapView.camera.zoom)
for locations in listLocations {
let lat = locations.location.latitude
let lon = locations.location.longitude
if mapView.camera.zoom < 9 {
mapView.clear()
}else if mapView.camera.zoom >= 9 && mapView.camera.zoom <= 12 {
if locations.type == "marina" {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(lat, lon)
marker.map = self.mapView
}
}else if mapView.camera.zoom >= 13 && mapView.camera.zoom <= 16 {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(lat, lon)
marker.map = self.mapView
}else if mapView.camera.zoom >= 17 {
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(lat, lon)
marker.map = self.mapView
}
}
}
Все начинается довольно хорошо, и когда я увеличиваю до 9 или менее маркеров,ушел как я хочу. но когда я увеличиваю или уменьшаю масштаб изображения, я вижу все маркеры!