<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "MapKit",
  "identifier" : "/documentation/MapKit/MKMapPoint",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "MapKit"
    ],
    "preciseIdentifier" : "c:@SA@MKMapPoint"
  },
  "title" : "MKMapPoint"
}
-->

# MKMapPoint

A point on a two-dimensional map projection.

```
struct MKMapPoint
```

## Overview

If you project the curved surface of the globe onto a flat surface, you get a two-dimensional version of a map where longitude lines appear to be parallel. An `MKMapPoint` data structure represents a point on this two-dimensional map.

The underlying units that MapKit uses to draw the contents of an [`MKMapView`](/documentation/MapKit/MKMapView) define the actual units of a map point, but you don’t need to worry about these units directly. You use map points primarily to simplify computations that are complex to do using coordinate values on a curved surface. By converting to map points, you can perform those calculations on a flat surface, which is generally much simpler, and then convert back as necessary. You can map between coordinate values and map points using the [`init(_:)`](/documentation/MapKit/MKMapPoint/init(_:)) and [`coordinate`](/documentation/MapKit/MKMapPoint/coordinate) functions.

When saving map-related data to a file, save coordinate values (latitude and longitude) rather than map points.

## Topics

### Creating a map point

[`init()`](/documentation/MapKit/MKMapPoint/init())

Creates a map point at an unspecified point.

[`init(x:y:)`](/documentation/MapKit/MKMapPoint/init(x:y:))

Creates a new map point structure from the specified values.

[`MKMapPointForCoordinate`](/documentation/MapKit/MKMapPoint/init(_:))

Creates the map point data structure that corresponds to the specified coordinate.

### Getting the point coordinates

[`x`](/documentation/MapKit/MKMapPoint/x)

The location of the point along the x-axis of the map.

[`y`](/documentation/MapKit/MKMapPoint/y)

The location of the point along the y-axis of the map.

[`MKCoordinateForMapPoint`](/documentation/MapKit/MKMapPoint/coordinate)

A 2D coordinate that corresponds to the latitude and longitude of the specified map point.

### Comparing map points

[`MKMapPointEqualToPoint`](/documentation/MapKit/MKMapPointEqualToPoint(_:_:))

Returns a Boolean value that indicates whether two map points are equal.

### Getting the distance between points

[`MKMetersBetweenMapPoints`](/documentation/MapKit/MKMapPoint/distance(to:))

Returns the number of meters between two map points.

[`MKMetersPerMapPointAtLatitude`](/documentation/MapKit/MKMetersPerMapPointAtLatitude(_:))

Returns the distance that one map point spans at the specified latitude.

[`MKMapPointsPerMeterAtLatitude`](/documentation/MapKit/MKMapPointsPerMeterAtLatitude(_:))

Returns the number of map points that represent one meter at the specified latitude.

### Getting a description of the point

[`MKStringFromMapPoint`](/documentation/MapKit/MKStringFromMapPoint(_:))

Returns a formatted string for the specified map point.

## Relationships

### Conforms To

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

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

---

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)