<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.9.0 -",
    "tvOS: 9.2.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MapKit",
  "identifier" : "/documentation/MapKit/MKMapView/addOverlay(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "MapKit"
    ],
    "preciseIdentifier" : "c:objc(cs)MKMapView(im)addOverlay:"
  },
  "title" : "addOverlay(_:)"
}
-->

# addOverlay(_:)

Adds a single overlay object to the map.

```
func addOverlay(_ overlay: any MKOverlay)
```

## Parameters

`overlay`

The overlay object to add. This object needs to conform to the [`MKOverlay`](/documentation/MapKit/MKOverlay) protocol.

## Discussion

The map view adds the specified object to the group of overlay objects in the [`MKOverlayLevel.aboveLabels`](/documentation/MapKit/MKOverlayLevel/aboveLabels) level. Adding an overlay causes the map view to begin monitoring the area that the overlay represents. As soon as the bounding rectangle of an overlay intersects the visible portion of the map, the map view adds a corresponding overlay view to the map. Implement the [`mapView(_:rendererFor:)`](/documentation/MapKit/MKMapViewDelegate/mapView(_:rendererFor:)) method of the map view’s delegate object to provide the overlay view.

To remove an overlay from a map, use the [`removeOverlay(_:)`](/documentation/MapKit/MKMapView/removeOverlay(_:)) method.

## See Also

[`removeOverlay(_:)`](/documentation/MapKit/MKMapView/removeOverlay(_:))

Removes a single overlay object from the map.

[`removeOverlays(_:)`](/documentation/MapKit/MKMapView/removeOverlays(_:))

Removes one or more overlay objects from the map.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)