title: MapKit Annotations Disappearing
body: <p>I have an array of latitudes and another array of longitudes that I add to an array of type CLLocationCoordinate2D. I then use the new array to annotate multiple points on the map. Some, or most, or maybe even all of the annotations are displaying on the map but as I zoom in (yes, zoom IN), some of the annotations disappear, then come back, or dont.  Any ideas on how to keep them all visible?  This is behavior I would expect while zooming out, not in.</p>
  
  <p>Here is the code i'm using for what i've described above.</p>
  
  <pre><code>import UIKit
  import MapKit
  import CoreLocation
  
  class MultiMapVC: UIViewController, CLLocationManagerDelegate {
  
  @IBOutlet weak var multiEventMap: MKMapView!
  
  var latDouble = Double()
  var longDouble = Double()
  let manager = CLLocationManager()
  var receivedArrayOfLats = [Double]()
  var receivedArrayOfLongs = [Double]()
  var locations = [CLLocationCoordinate2D]()
  
  
  func locationManager(_ manager: CLLocationManager, didUpdateLocations uLocation: [CLLocation]) {
      let userLocation = uLocation[0]
      let span:MKCoordinateSpan = MKCoordinateSpanMake(0.3, 0.3)
      let usersLocation = userLocation.coordinate
      let region:MKCoordinateRegion = MKCoordinateRegionMake(usersLocation, span)
      multiEventMap.setRegion(region, animated: true)
      manager.distanceFilter = 1000
      self.multiEventMap.showsUserLocation = true
  }
  
  func multiPoint() {
  
      var coordinateArray: [CLLocationCoordinate2D] = []
      print ("Received Longitude Count = \(receivedArrayOfLongs.count)")
      print ("Received Latitude Count = \(receivedArrayOfLats.count)")
      if receivedArrayOfLats.count == receivedArrayOfLongs.count {
          for i in 0 ..&lt; receivedArrayOfLats.count {
              let eventLocation = CLLocationCoordinate2DMake(receivedArrayOfLats[i], receivedArrayOfLongs[i])
              coordinateArray.append(eventLocation)
              print (coordinateArray.count)
          }
      }
  
      for events in coordinateArray {
          let annotation = MKPointAnnotation()
          annotation.coordinate = CLLocationCoordinate2D(latitude: events.latitude, longitude: events.longitude)
          multiEventMap.addAnnotation(annotation)
          }
  }
  
  
  override func viewDidLoad() {
      super.viewDidLoad()
      manager.delegate = self
      manager.desiredAccuracy = kCLLocationAccuracyBest
      manager.requestWhenInUseAuthorization()
      manager.startUpdatingLocation()
      multiPoint()
          }
  
  
  override func viewDidDisappear(_ animated: Bool) {
      super.viewDidDisappear(animated)
      multiEventMap.removeFromSuperview()
      self.multiEventMap = nil
  
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  </code></pre>
  
  <p>}</p>