> For the complete documentation index, see [llms.txt](https://docs.os.uk/os-downloads/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.os.uk/os-downloads/products/maps-and-imagery-portfolio/os-mastermap-topography-layer/os-mastermap-topography-layer-technical-specification/geometric-data-types.md).

# Geometric data types

All feature types are presented in British National Grid (BNG) as one of the four data types specified below:

## GM\_Point (Point) <a href="#id-3.5.1-gm_point-point" id="id-3.5.1-gm_point-point"></a>

A point is used to specify a single x,y location by a coordinate pair in a given spatial reference system.

### **Example**

A point defined in the BNG reference system has easting and northing ordinates in units of metres, where the easting is in the range of 0 to 700000 and the northing is in the range of 0 to 1300000. Coordinates are output to millimetre precision and are output in the data as float64 real types.

<figure><img src="/files/Qk2sL6kU1wvNktfEJQjR" alt="An example of a point data type." width="176"><figcaption><p>An example of a point data type.</p></figcaption></figure>

#### **Example class model**

<figure><img src="/files/rjPROlPMszzLUuchU7dY" alt="An example class model for  a point data type."><figcaption><p>An example class model for a point data type.</p></figcaption></figure>

## GM\_Curve (Polyline) <a href="#id-3.5.2-gm_curve-polyline" id="id-3.5.2-gm_curve-polyline"></a>

A polyline is an ordered set of points that are interpolated linearly. A polyline may not intersect itself or contain repeated points.

### **Example**

<figure><img src="/files/hKh0PTYW6c1BQP7j3APD" alt="An example of a GM Curve (polyline) data type."><figcaption><p>An example of a GM Curve (polyline) data type.</p></figcaption></figure>

**Example class model**

<figure><img src="/files/5QtL2WcuHVvR5MTYwVUR" alt="An example class model for a GM Curve (polyline) data type."><figcaption><p>An example class model for a GM Curve (polyline) data type.</p></figcaption></figure>

## GM\_MultiCurve (Multiline) <a href="#id-3.5.3-gm_multicurve-multiline" id="id-3.5.3-gm_multicurve-multiline"></a>

A multiline is a collection of polyline geometries. There are no specific semantics or rules applied to the collection.

### **Example**

<figure><img src="/files/ba9yfgrF5hpjrw2Lev7r" alt="An example of a GM MultiCurve (multiline) data type."><figcaption><p>An example of a GM MultiCurve (multiline) data type.</p></figcaption></figure>

**Example class model**

<figure><img src="/files/6TpLvbgZyyOF7iRxde4l" alt="An example class model for a GM MultiCurve (multiline) data type."><figcaption><p>An example class model for a GM MultiCurve (multiline) data type.</p></figcaption></figure>

## GM\_Surface (Polygon) <a href="#id-3.5.4-gm_surface-polygon" id="id-3.5.4-gm_surface-polygon"></a>

A polygon is a single closed region on the spatial reference system projection plane, defined by a set of geometric rings that represent the boundaries. A polygon has one outer boundary and zero or more inner boundaries (holes in the polygon). The inner boundaries must not cross each other or contain other inner boundaries. Coordinates in outer boundaries are oriented in an anticlockwise direction; coordinates in inner boundaries are oriented in a clockwise direction.

### **Example**<br>

<figure><img src="/files/QL8EittUiVvATy7gdumA" alt="An example of a GM Surface (polygon) data type." width="461"><figcaption><p>An example of a GM Surface (polygon) data type.</p></figcaption></figure>

**Example class model**

<figure><img src="/files/LUiiT6cpwEmInUcNI8Xt" alt="An example class model for a GM Surface (polygon) data type." width="392"><figcaption><p>An example class model for a GM Surface (polygon) data type.</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.os.uk/os-downloads/products/maps-and-imagery-portfolio/os-mastermap-topography-layer/os-mastermap-topography-layer-technical-specification/geometric-data-types.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
