<!--
{
  "availability" : [
    "MapKit JS: 5.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MapKitJS",
  "identifier" : "/documentation/MapKitJS/AnnotationConstructorOptions",
  "metadataVersion" : "0.1.0",
  "role" : "Interface",
  "symbol" : {
    "kind" : "Interface",
    "modules" : [
      "MapKit JS"
    ],
    "preciseIdentifier" : "struct/mapkit.AnnotationConstructorOptions"
  },
  "title" : "AnnotationConstructorOptions"
}
-->

# AnnotationConstructorOptions

An object that contains options for creating annotation features.

```
interface AnnotationConstructorOptions
```

## Overview

Use [`AnnotationConstructorOptions`](/documentation/MapKitJS/AnnotationConstructorOptions) when you need to create a custom view to provide features beyond those that the [`ImageAnnotation`](/documentation/MapKitJS/ImageAnnotation) object provides.

## Topics

### Creating data and titles

[`data`](/documentation/MapKitJS/AnnotationConstructorOptions/data)

Data that you define and assign to the annotation.

[`title`](/documentation/MapKitJS/AnnotationConstructorOptions/title)

The text to display in the annotation’s callout.

[`subtitle`](/documentation/MapKitJS/AnnotationConstructorOptions/subtitle)

The text to display as a subtitle on the second line of an annotation’s callout.

[`accessibilityLabel`](/documentation/MapKitJS/AnnotationConstructorOptions/accessibilityLabel)

Accessibility text for the annotation.

### Setting position and appearances

[`anchorOffset`](/documentation/MapKitJS/AnnotationConstructorOptions/anchorOffset)

The offset, in CSS pixels, of the element from the bottom center.

[`appearanceAnimation`](/documentation/MapKitJS/AnnotationConstructorOptions/appearanceAnimation)

A CSS animation that runs when the annotation appears on the map.

[`displayPriority`](/documentation/MapKitJS/AnnotationConstructorOptions/displayPriority)

A hint the map uses to prioritize displaying the annotation.

[`padding`](/documentation/MapKitJS/AnnotationConstructorOptions/padding)

Spacing to add around the annotation when showing items.

[`size`](/documentation/MapKitJS/AnnotationConstructorOptions/size)

The desired dimensions of the annotation, in CSS pixels.

[`visible`](/documentation/MapKitJS/AnnotationConstructorOptions/visible)

A Boolean value that determines whether the annotation is visible or hidden.

### Creating interaction behavior

[`animates`](/documentation/MapKitJS/AnnotationConstructorOptions/animates)

A Boolean value that determines whether the map animates the annotation.

[`draggable`](/documentation/MapKitJS/AnnotationConstructorOptions/draggable)

A Boolean value that determines whether the user can drag the annotation.

[`enabled`](/documentation/MapKitJS/AnnotationConstructorOptions/enabled)

A Boolean value that determines whether the annotation responds to user interaction.

[`selected`](/documentation/MapKitJS/AnnotationConstructorOptions/selected)

A Boolean value that determines whether the map displays the annotation in a selected state.

[`place`](/documentation/MapKitJS/AnnotationConstructorOptions/place)

An object that allows a custom annotation to potentially supersede a point of interest at the same map coordinates.

### Creating callouts

[`callout`](/documentation/MapKitJS/AnnotationConstructorOptions/callout)

A delegate that enables you to customize the annotation’s callout.

[`calloutEnabled`](/documentation/MapKitJS/AnnotationConstructorOptions/calloutEnabled)

A Boolean value that determines whether the map shows a callout.

[`calloutOffset`](/documentation/MapKitJS/AnnotationConstructorOptions/calloutOffset)

The offset, in CSS pixels, of a callout from the top center of the element.

### Grouping annotations

[`clusteringIdentifier`](/documentation/MapKitJS/AnnotationConstructorOptions/clusteringIdentifier)

An identifier for grouping annotations into the same cluster.

[`collisionMode`](/documentation/MapKitJS/AnnotationConstructorOptions/collisionMode)

A mode that determines the shape of the collision frame.

[`id`](/documentation/MapKitJS/AnnotationConstructorOptions/id)

A Place ID that uniquely identifies a feature.

## Relationships

### Inherited By

[`ImageAnnotationConstructorOptions`](/documentation/MapKitJS/ImageAnnotationConstructorOptions)

[`MarkerAnnotationConstructorOptions`](/documentation/MapKitJS/MarkerAnnotationConstructorOptions)

---

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)