<!--
{
  "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 -",
    "watchOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MapKit",
  "identifier" : "/documentation/MapKit/MKOverlay",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "MapKit"
    ],
    "preciseIdentifier" : "c:objc(pl)MKOverlay"
  },
  "title" : "MKOverlay"
}
-->

# MKOverlay

An interface for associating content with a specific map region.

```
protocol MKOverlay : MKAnnotation
```

## Overview

*Overlay objects* are data objects that define the geographic data to cover. MapKit defines several concrete classes that adopt this protocol and define standard shapes like rectangles, circles, and polygons. You might use overlays to define the geographic boundaries of a national park or trace a bus route along city streets. You add an overlay to your map view by calling its [`addOverlay(_:)`](/documentation/MapKit/MKMapView/addOverlay(_:)) method or any other map view method for adding overlays to the map. When the overlay’s region intersects the visible portion of the map, the map view calls the [`mapView(_:rendererFor:)`](/documentation/MapKit/MKMapViewDelegate/mapView(_:rendererFor:)) method of its delegate to obtain the renderer object responsible for drawing the overlay.

If you add an overlay to a map view as an annotation, instead of adding it as an overlay, the map view treats your overlay as an annotation. Specifically, it displays your overlay only when its [`coordinate`](/documentation/MapKit/MKOverlay/coordinate) is in the visible map region, rather than displaying the overlay when any portion of its covered area is visible.

## Topics

### Describing the overlay geometry

[`coordinate`](/documentation/MapKit/MKOverlay/coordinate)

The approximate center point of the overlay area.

[`boundingMapRect`](/documentation/MapKit/MKOverlay/boundingMapRect)

The projected rectangle that encompasses the overlay.

### Determining map intersections

[`intersects(_:)`](/documentation/MapKit/MKOverlay/intersects(_:))

Returns a Boolean value that indicates whether the specified rectangle intersects the overlay’s shape.

### Optimizing map rendering

[`canReplaceMapContent()`](/documentation/MapKit/MKOverlay/canReplaceMapContent())

Returns a Boolean value that indicates whether the overlay content replaces the underlying map content.



---

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)