---
title: MKShape
framework: mapkit
role: symbol
role_heading: Class
path: mapkit/mkshape
---

# MKShape

An abstract class that defines the basic properties for all shape-based overlay objects.

## Declaration

```swift
class MKShape
```

## Overview

Overview You can’t instantiate this class directly; use a subclass instead. Subclasses are responsible for defining the geometry of the shape and providing an appropriate value for the coordinate property they inherit from the MKAnnotation protocol.

## Topics

### Accessing the shape attributes

- [title](mapkit/mkshape/title.md)
- [subtitle](mapkit/mkshape/subtitle.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [MKCircle](mapkit/mkcircle.md)
- [MKMultiPoint](mapkit/mkmultipoint.md)
- [MKMultiPolygon](mapkit/mkmultipolygon.md)
- [MKMultiPolyline](mapkit/mkmultipolyline.md)
- [MKPointAnnotation](mapkit/mkpointannotation.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [MKAnnotation](mapkit/mkannotation.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Shared behavior

- [MKOverlay](mapkit/mkoverlay.md)
- [MKOverlayRenderer](mapkit/mkoverlayrenderer.md)
- [MKMultiPoint](mapkit/mkmultipoint.md)
- [MKPlacemark](mapkit/mkplacemark.md)
