MapKit displays interactive maps in your app, letting you place annotations with MKAnnotationView, draw overlays such as MKCircle and MKGeodesicPolyline through renderers like MKCircleRenderer and MKGradientPolylineRenderer, and frame the view with types like MKCoordinateRegion and MKMapRect. You calculate routes with MKDirections and MKRoute, run place search and autocompletion using MKLocalSearch and MKLocalSearchCompleter, and geocode addresses with MKGeocodingRequest and MKAddress. It also supports immersive street-level imagery through MKLookAroundScene, MKLookAroundSceneRequest, and MKLookAroundViewController, along with snapshots and GeoJSON parsing via MKGeoJSONDecoder. MapKit runs on iOS, macOS, tvOS, watchOS, and visionOS.
Maps in SwiftUI 10
Declarative SwiftUI types for embedding a map, controlling its camera, and styling its appearance.
- PrDynamicMapContentiOS 17.0+A protocol for SwiftUI map content that resolves dynamically from a collection of data.
- StMapStyleiOS 17.0+A Style that can be applied to a Map.
- StMapInteractionModesiOS 14.0+The ways a user can interact with a map.
- StMapProxyiOS 17.0+A proxy for accessing sizing information about a given map view.
- StMapCameraiOS 17.0+Defines a virtual viewpoint above the map surface.
- StMapCameraBoundsiOS 17.0+Defines an optional boundary of an area within which the map’s center needs to
- StMapCameraPositioniOS 17.0+How to position the map's camera within the map.
- StMapCameraUpdateContextiOS 17.0+A structure that provides camera state during a SwiftUI map update callback.
- StMapCameraUpdateFrequencyiOS 17.0+Values that specify how often a SwiftUI map reports camera updates.
- EnMapUserTrackingModeConstants that specify how a SwiftUI map follows the user's location.
Map Content in SwiftUI 8
Annotations, markers, and overlay shapes you place declaratively on a SwiftUI map.
- PrMapAnnotationProtocoliOS 14.0+A protocol adopted by custom annotation content placed on a SwiftUI map.
- StMapAnnotationA SwiftUI annotation that places custom content at a coordinate on the map.
- StMapMarkerA SwiftUI map annotation that displays a balloon marker with a label.
- StMapPinA SwiftUI map annotation that displays a pushpin at a coordinate.
- StMapCircleiOS 17.0+A circular overlay with a configurable radius that you center on a geographic coordinate.
- StMapPolygoniOS 17.0+A closed polygon overlay.
- StMapPolylineiOS 17.0+An open polygon overlay consisting of one or more connected line segments.
- StUserLocationiOS 17.0+Information about the current location of the user.
Map Features & Selection 6
Types that represent selectable map features and points of interest in SwiftUI maps.
- PrMapSelectableiOS 17.0+Represents a selection of either a map feature, or map content with a given tag value.
- StMapSelectioniOS 18.0+Can represent a tag value or a `MapFeature`.
- StMapFeatureiOS 17.0+Represents a tappable map feature.
- StMKMapFeatureOptionsiOS 16.0+Options that specify which built-in map features are interactive or visible.
- StPointOfInterestCategoriesiOS 17.0+Point of Interest categories to be shown.
- StMapItemDetailSelectionAccessoryStyleThe map item detail selection accessory style
Displaying a Map View 12
The UIKit and AppKit map view and the controls that frame and configure it.
- ClMKMapViewiOS 3.0+A view that displays an interactive map with annotations and overlays.
- ClMKMapCameraiOS 7.0+An object that defines the viewing perspective, heading, and pitch of the map.
- ClMKMapConfigurationiOS 16.0+An abstract base type that configures the appearance and content of a map.
- ClMKStandardMapConfigurationiOS 16.0+A configuration that displays the standard road map style.
- ClMKHybridMapConfigurationiOS 16.0+A configuration that displays satellite imagery with road and label overlays.
- ClMKImageryMapConfigurationiOS 16.0+A configuration that displays satellite or aerial imagery on the map.
- EnMKMapTypeiOS 3.0+Constants that specify the type of map imagery to display.
- ClMKCompassButtoniOS 11+A control that displays a compass and orients the map to north when tapped.
- ClMKScaleViewiOS 11.0+A control that displays a scale indicator for the current map zoom level.
- ClMKUserTrackingButtoniOS 11.0+A control that toggles the map's user-location tracking mode.
- ClMKUserTrackingBarButtonItemiOS 5.0+A bar button item that toggles the map's user-location tracking mode.
- EnMKUserTrackingModeiOS 5.0+Constants that specify how the map follows the user's location and heading.
Annotations 15
Protocols and views for placing and displaying pins and markers on a map.
- PrMKAnnotationA protocol that associates a coordinate and metadata with an object placed on the map.
- ClMKAnnotationViewiOS 3.0+A view that displays an annotation's content at a coordinate on the map.
- ClMKMarkerAnnotationViewiOS 11.0+An annotation view that displays a balloon-shaped marker with a glyph.
- ClMKPinAnnotationViewAn annotation view that displays a classic pushpin marker.
- ClMKPointAnnotationiOS 4.0+An annotation defined by a single coordinate, title, and subtitle.
- ClMKClusterAnnotationiOS 11.0+An annotation that groups multiple nearby annotations into a single visual cluster.
- ClMKMapFeatureAnnotationiOS 16.0+An annotation that represents a built-in map feature such as a point of interest.
- ClMKMapItemAnnotationiOS 18.0+An annotation that displays a map item at its coordinate on the map.
- ClMKUserLocationiOS 3.0+An annotation that represents the device's current location on the map.
- ClMKUserLocationViewiOS 14.0+A view that displays the user's current location annotation.
- StMKAnnotationViewZPriorityiOS 14.0+Values that determine the stacking order of annotation views on the map.
- StMKFeatureDisplayPriorityiOS 11.0+Values that determine the priority with which annotations are displayed.
- EnMKFeatureVisibilityiOS 11.0+Constants that specify whether a map feature is hidden, visible, or adaptive.
- ClMKSelectionAccessoryiOS 18.0+An object that describes accessory content shown for a selected annotation.
- ClMKMapItemDetailViewControlleriOS 18.0+A view controller that presents detailed information about a map item.
Overlays & Renderers 21
Geometric shape overlays and the renderers that draw them on the map surface.
- PrMKOverlayiOS 4.0+A protocol adopted by objects that define overlay geometry drawn over the map.
- ClMKShapeiOS 4.0+An abstract base type for annotation and overlay shapes with a title and subtitle.
- ClMKCircleiOS 4.0+A circular overlay defined by a center coordinate and a radius.
- ClMKPolygoniOS 4.0+An overlay defined by a closed series of coordinates forming a filled shape.
- ClMKPolylineiOS 4.0+An overlay defined by an ordered series of connected coordinates.
- ClMKGeodesicPolylineiOS 7.0+A polyline overlay whose segments follow the shortest path over the earth's surface.
- ClMKMultiPointiOS 4.0+An overlay base type defined by an ordered series of map points.
- ClMKMultiPolygoniOS 13.0+An overlay that groups multiple polygons into a single shape.
- ClMKMultiPolylineiOS 13.0+An overlay that groups multiple polylines into a single shape.
- ClMKTileOverlayiOS 7.0+An overlay that displays custom map tiles loaded from a URL template or source.
- ClMKOverlayRendereriOS 7.0+A base class that draws an overlay's contents into the map view.
- ClMKOverlayPathRendereriOS 7.0+A base renderer that draws overlays whose shapes are defined by a path.
- ClMKCircleRendereriOS 7.0+A renderer that draws a circle overlay onto the map.
- ClMKPolygonRendereriOS 7.0+A renderer that draws a polygon overlay onto the map.
- ClMKPolylineRendereriOS 7.0+A renderer that draws a polyline overlay onto the map.
- ClMKGradientPolylineRendereriOS 14.0+A renderer that draws a polyline with a color gradient along its length.
- ClMKMultiPolygonRendereriOS 13.0+A renderer that draws a multi-polygon overlay onto the map.
- ClMKMultiPolylineRendereriOS 13.0+A renderer that draws a multi-polyline overlay onto the map.
- ClMKTileOverlayRendereriOS 7.0+A renderer that draws tile overlay imagery onto the map.
- StMKTileOverlayPathA structure that identifies a specific map tile by its coordinates and zoom level.
- EnMKOverlayLeveliOS 7.0+Constants that specify whether an overlay draws above or below map labels.
Places & Map Items 9
Types that represent geographic places, addresses, and their on-map metadata.
- ClMKMapItemiOS 6.0+An object that represents a place, including its location and address details.
- ClMKMapItemRequestiOS 16.0+A request that retrieves a map item for an identifier or feature.
- ClMKPlacemarkAn object that represents a coordinate with associated address information.
- ClMKAddressiOS 26.0+An object that represents a structured postal address for a place on the map.
- ClMKAddressRepresentationsiOS 26.0+An object that provides formatted string representations of an address.
- ClMKAddressFilteriOS 18.0+An object that restricts which components of an address are included in results.
- ClMKPointOfInterestFilteriOS 13.0+An object that includes or excludes categories of points of interest on the map.
- StMKPointOfInterestCategoryConstants that identify categories of points of interest on the map.
- ClMKIconStyleiOS 16.0+An object that describes the icon appearance used for a place or point of interest.
Search & Autocompletion 6
Classes that find places by name, category, and partial text and return matching results.
- ClMKLocalSearchiOS 6.1+An object that performs a search for places matching a natural-language query.
- ClMKLocalSearchCompleteriOS 9.3+An object that produces autocompletion suggestions for a partial search string.
- ClMKLocalSearchCompletioniOS 9.3+An object that represents a single autocompletion suggestion for a search query.
- PrMKLocalSearchCompleterDelegateiOS 9.3+A protocol for receiving updated autocompletion results from a search completer.
- ClMKLocalPointsOfInterestRequestiOS 14.0+A request that searches for points of interest within a region or radius.
- EnMKLocalSearchRegionPriorityiOS 18.0+Constants that specify how strongly a search prioritizes a given region.
Geocoding 2
Requests that convert between addresses and geographic coordinates.
- ClMKGeocodingRequestiOS 26.0+A request that converts a postal address into geographic coordinates.
- ClMKReverseGeocodingRequestiOS 26.0+A request that converts geographic coordinates into a postal address.
Directions & Routing 4
Types that calculate routes between locations and describe travel options.
- ClMKDirectionsiOS 7.0+An object that computes route-based directions between map locations.
- ClMKRouteiOS 7.0+An object that describes a single route, including its geometry, distance, and steps.
- StMKDirectionsTransportTypeiOS 7.0+Options that specify the modes of transport for a directions request.
- ClMKDistanceFormatteriOS 7.0+An object that formats distance values into localized, human-readable strings.
Look Around 6
Types that present immersive street-level imagery for a location.
- ClMKLookAroundSceneiOS 16.0+An object that represents the street-level Look Around imagery for a location.
- ClMKLookAroundSceneRequestiOS 16.0+A request that retrieves a Look Around scene for a coordinate or map item.
- ClMKLookAroundViewControlleriOS 16.0+A view controller that presents interactive Look Around imagery.
- PrMKLookAroundViewControllerDelegateiOS 16.0+A protocol for responding to events from a Look Around view controller.
- ClMKLookAroundSnapshotteriOS 16.0+An object that renders a static image from a Look Around scene.
- EnMKLookAroundBadgePositioniOS 16.0+Constants that specify where the Look Around badge appears within a view.
Snapshots 1
Tools for rendering a static map image without a live map view.
- ClMKMapSnapshotteriOS 7.0+An object that renders a static map image for a specified region.
GeoJSON 3
Types for parsing GeoJSON data into MapKit shapes and features.
- ClMKGeoJSONDecoderiOS 13.0+An object that parses GeoJSON data into MapKit shapes and features.
- PrMKGeoJSONObjectiOS 13.0+A protocol adopted by objects produced when decoding GeoJSON data.
- ClMKGeoJSONFeatureiOS 13.0+An object that represents a GeoJSON feature with associated geometry and properties.
Coordinates & Geometry 5
Value types that express map coordinates, spans, points, and rectangular regions.
- StMKCoordinateRegionA structure that defines a rectangular geographic region by center and span.
- StMKCoordinateSpanA structure that defines the latitudinal and longitudinal extent of a map region.
- StMKMapPointA structure that represents a point on the two-dimensional map projection.
- StMKMapSizeA structure that represents a width and height on the map projection.
- StMKMapRectA structure that defines a rectangular area on the two-dimensional map projection.
Errors 1
Error information reported by MapKit operations.
- StMKErroriOS 3.0+A structure that describes errors reported by MapKit operations.
Structures 17
- StAnnotationiOS 17.0+A customizable annotation that marks a map location.
- StAnyMapContentiOS 17.5+A type-erased map content.
- StDefaultUserAnnotationContentiOS 17.0+You don't use this type directly. Instead MapKit creates this type on
- StEmptyMapContentiOS 17.0+A piece of map content that doesn't contain any content.
- StLookAroundPreview
- StMapiOS 14.0+
- StMapCompassiOS 17.0+A view that reflects the current orientation of the associated `Map`.
- StMapContentBuilderiOS 17.0+A result builder that creates map content content from closures.
- StMapContentViewiOS 17.0+
- StMapPitchToggleA button that will set the asosciated pitch of the associated `Map` to a
- StMapReaderiOS 17.0+A container view that defines its contents as a function of information about the first contained map.
- StMapScaleViewDisplays a legend with distance information for the associated `Map`
- StMapSelectableContentView
- StMapUserLocationButtoniOS 17.0+A button that will set the framing of the associated `Map` to the User Location
- StMarkeriOS 17.0+A balloon-shaped annotation that marks a map location.
- StTupleMapContentiOS 17.0+
Show 1 more
- StUserAnnotationiOS 17.0+Displays the current location of the user on the map.
Protocols 3
- PrMKMapItemDetailViewControllerDelegateiOS 18.0+
- PrMKMapViewDelegate
- PrMapContentiOS 17.0+
Type Aliases 1
- TyMKZoomScale