<!--
{
  "availability" : [
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit/WKInterfaceMap",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "c:objc(cs)WKInterfaceMap"
  },
  "title" : "WKInterfaceMap"
}
-->

# WKInterfaceMap

An interface element that displays a noninteractive map for the location you specify.

```
class WKInterfaceMap
```

## Overview

You can configure Maps dynamically from your interface controller. Use the methods of [`WKInterfaceMap`](/documentation/WatchKit/WKInterfaceMap) to specify the visible region of the map and to add any annotations or points of interest. Tapping the map launches the Maps app on the user’s Apple Watch and displays the corresponding location.

Using a map object, you specify a geographic region to display and you can optionally add annotations to the surface of the map. Maps display annotations as images on top of the map content. You can use custom images or display the built-in pin images. Maps can display no more than five annotations at a time.

Don’t subclass or create instances of this class yourself. Instead, define outlets in your interface controller class and connect them to the corresponding objects in your storyboard file. For example, to refer to a map object in your interface, define a property with the following syntax in your interface controller class:

```swift
@IBOutlet weak var myMap: WKInterfaceMap!
```

During the initialization of your interface controller, WatchKit creates a new instance of this class and assigns it to your outlet. At that point, you can use the object in your outlet to make changes to the onscreen map.

The Apple Watch must have an active network connection to download map tiles.

### Configure the Map in Interface Builder

In Xcode, you can configure information about your map from your storyboard file. The map interface object has an Enabled attribute that appears as a checkbox in the Attributes inspector. When you enable the map interface object in this checkbox, tapping the map launches the Maps app and displays the current selected location.

## Topics

### Specifying the Map Region

[`-  setVisibleMapRect:`](/documentation/WatchKit/WKInterfaceMap/setVisibleMapRect(_:))

Changes the map’s visible region to the specified map rectangle.

[`-  setRegion:`](/documentation/WatchKit/WKInterfaceMap/setRegion(_:))

Changes the map’s visible region to the specified coordinate region.

### Managing Map Annotations

[`-  addAnnotation:withImage:centerOffset:`](/documentation/WatchKit/WKInterfaceMap/addAnnotation(_:with:centerOffset:))

Displays the specified image on top of the map.

[`-  addAnnotation:withImageNamed:centerOffset:`](/documentation/WatchKit/WKInterfaceMap/addAnnotation(_:withImageNamed:centerOffset:))

Displays an image from the WatchKit app’s bundle on top of the map.

[`-  addAnnotation:withPinColor:`](/documentation/WatchKit/WKInterfaceMap/addAnnotation(_:with:))

Adds a pin to the map at the specified location.

[`WKInterfaceMapPinColor`](/documentation/WatchKit/WKInterfaceMapPinColor)

Constants for map pin colors.

[`-  removeAllAnnotations`](/documentation/WatchKit/WKInterfaceMap/removeAllAnnotations())

Removes all annotations from the map.

### Displaying the User’s Location

[`-  setShowsUserLocation:`](/documentation/WatchKit/WKInterfaceMap/setShowsUserLocation(_:))

Sets whether the map shows the user’s current location.

[`-  setShowsUserHeading:`](/documentation/WatchKit/WKInterfaceMap/setShowsUserHeading(_:))

Sets whether the map shows the user heading.

[`-  setUserTrackingMode:animated:`](/documentation/WatchKit/WKInterfaceMap/setUserTrackingMode(_:animated:))

Sets the map’s tracking mode.

[`UserTrackingMode`](/documentation/WatchKit/WKInterfaceMap/UserTrackingMode)

Modes for tracking the user’s location on the map.

### Initializing for SwiftUI

[`-  init`](/documentation/WatchKit/WKInterfaceMap/init())

Creates a map for use in SwiftUI.

## Relationships

### Conforms To

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

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

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

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

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

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

### Inherits From

[`WKInterfaceObject`](/documentation/WatchKit/WKInterfaceObject)

---

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)