<!--
{
  "availability" : [
    "iOS: 7.0.0 -",
    "iPadOS: 7.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/MKMapSnapshotter",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "MapKit"
    ],
    "preciseIdentifier" : "c:objc(cs)MKMapSnapshotter"
  },
  "title" : "MKMapSnapshotter"
}
-->

# MKMapSnapshotter

A utility class for capturing a map and its content into an image.

```
class MKMapSnapshotter
```

## Overview

Use an [`MKMapSnapshotter`](/documentation/MapKit/MKMapSnapshotter) object when you want to capture the system-provided map content, including the map tiles and imagery. The snapshotter object captures the best image possible by loading all of the available map tiles before capturing the image.

Configure a snapshotter object using an [`MKMapSnapshotter.Options`](/documentation/MapKit/MKMapSnapshotter/Options) object. The snapshot options specify the appearance of the map, including which portion of the map the snapshotter captures.

> Note:
> Snapshotter objects don’t capture the visual representations of any overlays or annotations that your app creates. If you want those items to appear in the final snapshot, you must draw them on the resulting snapshot image. For more information about drawing custom content on map snapshots, see ``doc://com.apple.mapkit/documentation/MapKit/MKMapSnapshotter/Snapshot``.

## Topics

### Creating a snapshotter object

[`-  initWithOptions:`](/documentation/MapKit/MKMapSnapshotter/init(options:))

Creates and returns a snapshotter object based on the specified options.

[`Options`](/documentation/MapKit/MKMapSnapshotter/Options)

The options the snapshotter initializer uses to create a snapshotter to capture map-based imagery.

### Generating a snapshot

[`-  startWithCompletionHandler:`](/documentation/MapKit/MKMapSnapshotter/start(completionHandler:))

Submits the request to create a snapshot and delivers the results to the specified block.

[`-  startWithQueue:completionHandler:`](/documentation/MapKit/MKMapSnapshotter/start(with:completionHandler:))

Submits the request to create a snapshot and executes the resulting block on the specified queue.

[`CompletionHandler`](/documentation/MapKit/MKMapSnapshotter/CompletionHandler)

A block that processes the results of a snapshot request.

[`-  cancel`](/documentation/MapKit/MKMapSnapshotter/cancel())

Cancels the request to create a snapshot.

[`loading`](/documentation/MapKit/MKMapSnapshotter/isLoading)

A Boolean value that indicates whether the snapshotter is generating an image.

### Snapshot output

[`Snapshot`](/documentation/MapKit/MKMapSnapshotter/Snapshot)

An image that a snapshotter object generates.

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)