Display map or satellite imagery from your app's interface, call out points of interest, and determine placemark information for map coordinates.


Use the MapKit framework to embed maps directly into your own windows and views. You can add annotations and overlays to the map to call out points of interest or user destinations. You can also provide text completion for users typing in the name of a point of interest.

If your app offers transit directions, you can make your directions available to Maps. You can also use Maps to supplement the directions that you provide in your app. For example, if your app only provides directions for subway travel, you can use Maps to provide walking directions to and from subway stations.


Map Fundamentals

Incorporate a map view into your interface when you want to display geographic content.

class MKMapView

An embeddable map interface, similar to the one provided by the Maps application.

class MKMapItem

A point of interest on the map.

Map Coordinates

Specify locations on the map using either geographic coordinates or map-specific points.

struct MKCoordinateRegion

A rectangular geographic region centered around a specific latitude and longitude.

struct MKCoordinateSpan

The width and height of a map region.

struct MKMapRect

A rectangular area on a two-dimensional map projection.

struct MKMapPoint

A point on a two-dimensional map projection.

struct MKMapSize

Width and height information on a two-dimensional map projection.

class MKDistanceFormatter

A utility object that converts between a geographic distance and a string-based expression of that distance.

Map Customization

Customize the appearance of the map view.

class MKMapCamera

A virtual camera for defining the appearance of the map.

class MKCompassButton

A specialized view that displays the current compass heading for its associated map.

class MKScaleView

A specialized view that displays the current scale information for its associated map.

protocol MKAnnotation

An interface for associating your content with a specific map location.

class MKUserTrackingButton

A specialized button that allows the user to toggle through the user tracking modes.

class MKUserTrackingBarButtonItem

A specialized bar button item that allows the user to toggle through the user tracking modes.

Annotations and Overlays

Place custom content on the map surface. Annotations are anchored to a specific map coordinate, and overlays cover a region.

class MKPlacemark

A user-friendly description of a location on the map.

protocol MKAnnotation

An interface for associating your content with a specific map location.

class MKAnnotationView

The visual representation of one of your annotation objects.

protocol MKOverlay

An interface for associating content with a specific map region.

class MKOverlayRenderer

The shared infrastructure used to draw overlays on the map surface.

MapKit Annotations

Use these annotation objects as-is in your maps.

MapKit Overlays

Use these overlays as-is in your maps.

Geographical Features

Use GeoJSON to add geographic features to your map.

Displaying an Indoor Map

Use the Indoor Mapping Data Format (IMDF) to show an indoor map with custom overlays and points of interest.

class MKGeoJSONDecoder

An object that decodes GeoJSON objects into MapKit types.

class MKGeoJSONFeature

The decoded representation of a GeoJSON feature.

protocol MKGeoJSONObject

Objects that can be returned by the GeoJSON decoder.


Provide directions using your own service, or ask for directions from Apple servers.

class MKDirections

A utility object that computes directions and travel-time information based on the route information you provide.

class MKDirections.Request

The start and end points of a route, along with the planned mode of transportation.

class MKDirections.Response

The route information returned by Apple servers in response to one of your requests for directions.

class MKDirections.ETAResponse

The travel-time information returned by Apple servers.

class MKRoute

A single route between a requested start and end point.

class MKRoute.Step

One portion of an overall route.

Placemark and Local Search

Search for points of interest and implement search completion for user-typed phrases.

Searching for Nearby Points of Interest

Provide automatic search completions based on a user’s partial search query, and search the map for relevant locations nearby.

class MKPlacemark

A user-friendly description of a location on the map.

class MKLocalSearch

A utility object for initiating map-based searches and processing the results.

struct MKLocalSearch.ResultType

Options that indicate types of search results.

class MKLocalSearchCompleter

A utility object for generating a list of completion strings based on a partial search string that you provide.

struct MKLocalSearchCompleter.ResultType

Options that indicate types of search completions.

class MKLocalSearchCompletion

A fully formed string that completes a partial string.

Points of Interest

Create filters for point of interest categories to include or exclude in your map, search, or autocompletion results.

Optimizing Map Views with Filtering and Camera Constraints

Display a map that is relevant to the user by filtering points of interest and search results, and constraining the visible region.

class MKPointOfInterestFilter

A list that specifies point of interest categories to be included or excluded in a map view, local search, or local search completer.

struct MKPointOfInterestCategory

Point of interest categories.

Static Map Snapshots

Capture map content to an image that you can display elsewhere.

class MKMapSnapshotter

A utility object for capturing map-based imagery.

class MKMapSnapshotter.Snapshot

An image generated by a snapshotter object.


let MKErrorDomain: String

The error domain for MapKit.

struct MKError

Error constants for the MapKit framework.

See Also