---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/llms.txt

# IPolygonGeometryAccess

Расширяет [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md).

Интерфейс доступа к геометрии "Многоугольник".

## Конструктор {#constructor}

```javascript
IPolygonGeometryAccess()
```

## Поля {#fields}

#|
|| **Имя** | **Тип** | **Описание** ||
|| [events](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#events) | [IEventManager](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventManager.md) | Менеджер событий объекта.

Унаследовано от [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#events). ||
|#

## События {#events}

#|
|| **Имя** | **Описание** ||
|| [change](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#change) | Изменение координат. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• oldCoordinates - старые координаты;

• newCoordinates - новые координаты;

• oldFillRule - старый алгоритм заливки;

• newFillRule - новые алгоритм заливки. ||
|#

## Методы {#methods}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [contains](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#contains)([position](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#contains-param-position)) | Boolean | Проверяет, лежит ли переданная точка внутри многоугольника. ||
|| [freeze](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#freeze)() | [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md) | Переводит объект в "замороженный" режим.

Унаследован от [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#freeze). ||
|| [get](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#get)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#get-param-index)) | Number[][] | Returns координаты контура с заданным индексом. ||
|| [getChildGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getChildGeometry)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getChildGeometry-param-index)) | [ILinearRingGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ILinearRingGeometryAccess.md) | Создает и возвращает объект [ILinearRingGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ILinearRingGeometryAccess.md) для заданного контура. ||
|| [getClosest](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getClosest)([anchorPosition](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getClosest-param-anchorPosition)) | Object | Ищет на контуре многоугольника точку, ближайшую к anchorPosition. ||
|| [getCoordinates](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getCoordinates)() | Number[][][] | Returns массив координат геометрии. ||
|| [getFillRule](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getFillRule)() | String | Returns идентификатор алгоритма заливки. ||
|| [getLength](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#getLength)() | Integer | Returns количество контуров в геометрии. ||
|| [insert](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#insert)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#insert-param-index), [path](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#insert-param-path)) | [IPolygonGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md) | Добавляет новый контур с заданным индексом. ||
|| [isFrozen](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#isFrozen)() | Boolean | Returns true, если объект находится в "замороженном" режиме, иначе false.

Унаследован от [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#isFrozen). ||
|| [remove](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#remove)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#remove-param-index)) | [ILinearRingGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ILinearRingGeometryAccess.md) | Удаляет контур с заданным индексом. ||
|| [set](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#set)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#set-param-index), [path](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#set-param-path)) | [IPolygonGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md) | Задает координаты контура c заданным индексом. ||
|| [setCoordinates](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#setCoordinates)([coordinates](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#setCoordinates-param-coordinates)) | [IPolygonGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md) | Задает массив координат геометрии. ||
|| [setFillRule](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#setFillRule)([fillRule](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#setFillRule-param-fillRule)) | [IPolygonGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md) | Задает алгоритм заливки многоугольника. ||
|| [splice](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#splice)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#splice-param-index), [number](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPolygonGeometryAccess.md#splice-param-number)) | [ILinearRingGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ILinearRingGeometryAccess.md)[] | Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number. ||
|| [unfreeze](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#unfreeze)() | [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md) | Переводит объект в активный режим.

Унаследован от [IFreezable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IFreezable.md#unfreeze). ||
|#

## Описание событий {#description-events}

### change

Изменение координат. Экземпляр класса [Event](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event.md). Имена полей, доступных через метод Event.get:

• oldCoordinates - старые координаты;

• newCoordinates - новые координаты;

• oldFillRule - старый алгоритм заливки;

• newFillRule - новые алгоритм заливки.

## Описание методов {#description-methods}

### contains

```javascript
{Boolean} contains(position)
```

Проверяет, лежит ли переданная точка внутри многоугольника.

**Returns** признак принадлежности точки многоугольнику.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `position`[*](*parametr) | — | Тип: Number[]

Координаты точки. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
var myPolygon = new ymaps.geometry.Polygon([
        [[69, 45], [68, 55], [86, 56]]
    ]);

// Метод работает только с корректно заданной картой.
myPolygon.options.setParent(myMap.options);
myPolygon.setMap(myMap);

// Проверка, входит ли точка клика в полигон, с заданной выше геометрией.
myMap.events.add('click', function (e) {
    alert(myPolygon.contains(e.get('coordPosition')) ? 'Ранил!' : 'Мимо!');
});
```

### get

```javascript
{Number[][]} get(index)
```

**Returns** координаты контура с заданным индексом.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс контура. ||
|#

\* Обязательный параметр/опция.

### getChildGeometry

```javascript
{ILinearRingGeometryAccess} getChildGeometry(index)
```

Создает и возвращает объект [ILinearRingGeometryAccess](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ILinearRingGeometryAccess.md) для заданного контура.

**Returns** объект геометрии, соответствующий заданному контуру.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс контура. ||
|#

\* Обязательный параметр/опция.

### getClosest

```javascript
{Object} getClosest(anchorPosition)
```

Ищет на контуре многоугольника точку, ближайшую к anchorPosition.

**Returns** объект со следующими полями:

• position - точка на контуре многоугольника ближайшая к anchorPosition;

• distance - расстояние от anchorPosition до position;

• closestPointIndex - индекс вершины многоугольника, ближайшей к position;

• nextPointIndex - индекс вершины многоугольника, следующей за position;

• prevPointIndex - индекс вершины многоугольника, предшествующей position;

• pathIndex - индекс контура многоугольника, к которому относится найденная точка.

Поля nextPointIndex, prevPointIndex могут отсутствовать, если position совпадает с одной из вершин многоугольника.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `anchorPosition`[*](*parametr) | — | Тип: Number[]

Координаты точки, для которой расчитывается ближайшая точка на контуре многоугольника. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
var myPolygon = new ymaps.Polygon([
        [[69, 45], [68, 55], [86, 56], [87, 43]],
        [[60, 48], [62, 60], [80, 62], [80, 48]]
    ]),
    myPoint = new ymaps.Placemark([74, 52]),
    // Построим кратчайшую нормаль от контура полигона до точки:
    normalVec = new ymaps.Polyline([
        myPolygon.geometry.getClosest(myPoint.geometry.getCoordinates()).position,
        myPoint.geometry.getCoordinates()
    ]));

myMap.geoObjects
    .add(myPolygon)
    .add(myPoint),
    .add(normalVec);
```

### getCoordinates

```javascript
{Number[][][]} getCoordinates()
```

**Returns** массив координат геометрии.

### getFillRule

```javascript
{String} getFillRule()
```

**Returns** идентификатор алгоритма заливки.

**Пример:**

```javascript
var myPolygon = new ymaps.Polygon([
        [[69, 45], [68, 55], [86, 56], [87, 43]],
        [[60, 48], [62, 60], [80, 62], [80, 48]]
    ]),
    middlePoint = [74, 52];

myMap.geoObjects.add(myPolygon);

// Проверка точки, приходящейся на пересечение двух контуров,
// по умолчанию (значение fillRule == 'evenOdd') образует вырез (дырку).
alert(myPolygon.geometry.contains(middlePoint)); // => false

// После задания значения 'nonZero', все пересечения также "закрашиваются",
// теперь точка входит в полигон.
myPolygon.geometry.setFillRule('nonZero');
alert(myPolygon.geometry.contains(middlePoint)); // => true
```

### getLength

```javascript
{Integer} getLength()
```

**Returns** количество контуров в геометрии.

### insert

```javascript
{IPolygonGeometryAccess} insert(index, path)
```

Добавляет новый контур с заданным индексом.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс контура. ||
|| `path`[*](*parametr) | — | Тип: Number[][]

Координаты контура. ||
|#

\* Обязательный параметр/опция.

### remove

```javascript
{ILinearRingGeometryAccess} remove(index)
```

Удаляет контур с заданным индексом.

**Returns** удаленный контур.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс контура. ||
|#

\* Обязательный параметр/опция.

### set

```javascript
{IPolygonGeometryAccess} set(index, path)
```

Задает координаты контура c заданным индексом.

**Returns** ссылка на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс контура. ||
|| `path`[*](*parametr) | — | Тип: Number[][]

Координаты контура. ||
|#

\* Обязательный параметр/опция.

### setCoordinates

```javascript
{IPolygonGeometryAccess} setCoordinates(coordinates)
```

Задает массив координат геометрии.

**Returns** ссылка на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `coordinates`[*](*parametr) | — | Тип: Number[][][]

Координаты геометрии. ||
|#

\* Обязательный параметр/опция.

### setFillRule

```javascript
{IPolygonGeometryAccess} setFillRule(fillRule)
```

Задает алгоритм заливки многоугольника.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `fillRule`[*](*parametr) | — | Тип: String

Идентификатор алгоритма заливки. ||
|#

\* Обязательный параметр/опция.

### splice

```javascript
{ILinearRingGeometryAccess[]} splice(index, number)
```

Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number.

**Returns** удаленные контуры.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Integer

Индекс, начиная с которого производится удаление и добавление контуров. ||
|| `number`[*](*parametr) | — | Тип: Integer

Количество удаляемых контуров. ||
|#


\* Обязательный параметр/опция.

[*parametr]:Обязательный параметр/опция.
