---
title: "Anchor | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class Anchor

A standalone point geometry with useful accessor, comparison, and modification methods.

#### Param: x[](#param-x)

the x-coordinate. This could be longitude or screen pixels, or any other sort of unit.

#### Param: y[](#param-y)

the y-coordinate. This could be latitude or screen pixels, or any other sort of unit.

#### Example[](#example)

```typescript
const point = new Point(-77, 38);
```

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.Anchor))

-   [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    -   Anchor

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[angle](#angle) [segment?](#segment) [x](#x) [y](#y)

### Methods[](#methods)

[add](#add) [angleTo](#angleto) [angleWith](#anglewith) [angleWithSep](#anglewithsep) [clone](#clone) [dist](#dist) [distSqr](#distsqr) [div](#div) [divByPoint](#divbypoint) [equals](#equals) [mag](#mag) [matMult](#matmult) [mult](#mult) [multByPoint](#multbypoint) [perp](#perp) [rotate](#rotate) [rotateAround](#rotatearound) [round](#round) [sub](#sub) [unit](#unit)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new Anchor(x: number, y: number, angle: number, segment?: number): Anchor[](#constructoranchor)
    
    #### Parameters
    
    -   x: number
    -   y: number
    -   angle: number
    -   `Optional`segment: number
    
    #### Returns Anchor
    
    Overrides [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[constructor](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#constructor)
    

## Properties[](#properties-1)

### angle[](#angle)

angle: any

Get the angle from the 0, 0 coordinate to this point, in radians coordinates.

#### Returns[](#returns)

angle

Overrides [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[angle](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#angle)

### `Optional`segment[](#segment)

segment?: number

### x[](#x)

x: number

Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[x](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#x)

### y[](#y)

y: number

Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[y](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#y)

## Methods[](#methods-1)

### add[](#add)

-   add(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#add-1)
    
    Add this point's x & y coordinates to another point, yielding a new point.
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[add](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#add)
    

### angleTo[](#angleto)

-   angleTo(b: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): number[](#angleto-1)
    
    Get the angle from this point to another point, in radians
    
    #### Parameters
    
    -   b: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns number
    
    angle
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[angleTo](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#angleto)
    

### angleWith[](#anglewith)

-   angleWith(b: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): number[](#anglewith-1)
    
    Get the angle between this point and another point, in radians
    
    #### Parameters
    
    -   b: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns number
    
    angle
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[angleWith](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#anglewith)
    

### angleWithSep[](#anglewithsep)

-   angleWithSep(x: number, y: number): number[](#anglewithsep-1)
    
    Find the angle of the two vectors, solving the formula for the cross product a x b = |a||b|sin(θ) for θ.
    
    #### Parameters
    
    -   x: number
        
        the x-coordinate
        
    -   y: number
        
        the y-coordinate
        
    
    #### Returns number
    
    the angle in radians
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[angleWithSep](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#anglewithsep)
    

### clone[](#clone)

-   clone(): Anchor[](#clone-1)
    
    Clone this point, returning a new point that can be modified without affecting the old one.
    
    #### Returns Anchor
    
    the clone
    
    Overrides [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[clone](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#clone)
    

### dist[](#dist)

-   dist(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): number[](#dist-1)
    
    Calculate the distance from this point to another point
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns number
    
    distance
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[dist](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#dist)
    

### distSqr[](#distsqr)

-   distSqr(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): number[](#distsqr-1)
    
    Calculate the distance from this point to another point, without the square root step. Useful if you're comparing relative distances.
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns number
    
    distance
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[distSqr](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#distsqr)
    

### div[](#div)

-   div(k: number): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#div-1)
    
    Divide this point's x & y coordinates by a factor, yielding a new point.
    
    #### Parameters
    
    -   k: number
        
        factor
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[div](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#div)
    

### divByPoint[](#divbypoint)

-   divByPoint(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#divbypoint-1)
    
    Divide this point's x & y coordinates by point, yielding a new point.
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[divByPoint](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#divbypoint)
    

### equals[](#equals)

-   equals(other: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): boolean[](#equals-1)
    
    Judge whether this point is equal to another point, returning true or false.
    
    #### Parameters
    
    -   other: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns boolean
    
    whether the points are equal
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[equals](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#equals)
    

### mag[](#mag)

-   mag(): number[](#mag-1)
    
    Return the magnitude of this point: this is the Euclidean distance from the 0, 0 coordinate to this point's x and y coordinates.
    
    #### Returns number
    
    magnitude
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[mag](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#mag)
    

### matMult[](#matmult)

-   matMult(m: \[number, number, number, number\]): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#matmult-1)
    
    Multiply this point by a 4x1 transformation matrix
    
    #### Parameters
    
    -   m: \[number, number, number, number\]
        
        transformation matrix
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[matMult](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#matmult)
    

### mult[](#mult)

-   mult(k: number): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#mult-1)
    
    Multiply this point's x & y coordinates by a factor, yielding a new point.
    
    #### Parameters
    
    -   k: number
        
        factor
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[mult](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#mult)
    

### multByPoint[](#multbypoint)

-   multByPoint(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#multbypoint-1)
    
    Multiply this point's x & y coordinates by point, yielding a new point.
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[multByPoint](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#multbypoint)
    

### perp[](#perp)

-   perp(): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#perp-1)
    
    Compute a perpendicular point, where the new y coordinate is the old x coordinate and the new x coordinate is the old y coordinate multiplied by -1
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    perpendicular point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[perp](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#perp)
    

### rotate[](#rotate)

-   rotate(a: number): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#rotate-1)
    
    Rotate this point around the 0, 0 origin by an angle a, given in radians
    
    #### Parameters
    
    -   a: number
        
        angle to rotate around, in radians
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[rotate](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#rotate)
    

### rotateAround[](#rotatearound)

-   rotateAround(a: number, p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#rotatearound-1)
    
    Rotate this point around p point by an angle a, given in radians
    
    #### Parameters
    
    -   a: number
        
        angle to rotate around, in radians
        
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        Point to rotate around
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[rotateAround](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#rotatearound)
    

### round[](#round)

-   round(): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#round-1)
    
    Return a version of this point with the x & y coordinates rounded to integers.
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    rounded point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[round](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#round)
    

### sub[](#sub)

-   sub(p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#sub-1)
    
    Subtract this point's x & y coordinates to from point, yielding a new point.
    
    #### Parameters
    
    -   p: [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
        
        the other point
        
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    output point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[sub](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#sub)
    

### unit[](#unit)

-   unit(): [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)[](#unit-1)
    
    Calculate this point but as a unit vector from 0, 0, meaning that the distance from the resulting point to the 0, 0 coordinate will be equal to 1 and the angle from the resulting point to the 0, 0 coordinate will be the same as before.
    
    #### Returns [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/)
    
    unit vector point
    
    Inherited from [Point](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/).[unit](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Point/#unit)
