---
metadata:
  - name: generator
    content: Diplodoc Platform v5.37.1
alternate:
  - https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.npolyshape.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/jsapi-v1-1/doc/ru/llms.txt

# YMaps.Hotspots.NPolyShape

Расширяет [YMaps.Hotspots.IShape](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md).

Невыпуклый многоугольник.

## Конструктор

#|
|| **Имя** | **Описание** ||
|| [YMaps.Hotspots.NPolyShape](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.npolyshape.md#constructor)(coords) | Создает фигуру - невыпуклый многоугольник.


{% note info %}

Все координаты задаются в пикселах на текущем масштабе, отсчитанных от левого верхнего угла мира.

{% endnote %}



{% note info %}

Вычисление функции принадлежности точки многоугольнику производится значительно быстрее для выпуклых многоугольников по сравнению с невыпуклыми.

{% endnote %}
||
|#

## Методы

Имя | Возвращает | Описание
----- | ----- | -----
[getNumPoints](hotspots.npolyshape.md#getNumPoints)() | Integer | Возвращает число вершин фигуры.
[getPoint](hotspots.npolyshape.md#getPoint)() | [YMaps.Point](point.md) | Возвращает вершину фигуры по ее индексу.

## Наследуемые методы

Из [YMaps.Hotspots.IShape](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md): 
: [contains](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#contains), [getMaxX](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#getMaxX), [getMaxY](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#getMaxY), [getMinX](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#getMinX), [getMinY](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#getMinY), [getOwner](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#getOwner), [setOwner](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/hotspots.ishape.md#setOwner)

## Подробное описание конструктора {#constructor}

```javascript
YMaps.Hotspots.NPolyShape(coords)
```

Создает фигуру - невыпуклый многоугольник.


{% note info %}

Все координаты задаются в пикселах на текущем масштабе, отсчитанных от левого верхнего угла мира.

{% endnote %}



{% note info %}

Вычисление функции принадлежности точки многоугольнику производится значительно быстрее для выпуклых многоугольников по сравнению с невыпуклыми.

{% endnote %}


**Пример:**

```javascript
// Создадим многоугольник в виде буквы "V"
// Пусть задана левая верхняя точка в виде географических координат
// и смещения в виде пикселей на текущем масштабе.
var geoBase = new YMaps.GeoPoint(30, 40),
    offsets = [
      0, 0, //левая верхняя точка
      10, 0,
      25, 30,
      40, 0,
      50, 0,
      30, 40,
      20, 40];
// Последняя точка соединяется с первой автоматически.

// Пересчитаем точку отсчета в пиксели на последнем масштабе
var pixelBase = map.tileCoordinates.scale(
        map.coordSystem.fromCoordPoint(geoBase),
        map.coordSystem.getMaxZoom(),
        map.getZoom()
);

// Пересчитаем координаты, прибавив к ним базовую точку
for (var i = 0; i < offsets.length - 1; i+=2) {
    offsets[i] += pixelBase.getX();
    offsets[i+1] += pixelBase.getY();
}

// Создадим объект - невыпуклый многоугольник:
var npoly = new YMaps.Hotspots.NPolyShape(offsets);
```

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

Имя | Тип | Описание
----- | ----- | -----
`coords` | Number[] | Массив координат вершин в пикселах на текущем масштабе. Должен содержать не менее 6 чисел (т.е. 3 вершин).

## Подробное описание методов {#method_detail}

### getNumPoints {#getNumPoints}

```javascript
{Integer} getNumPoints()
```

Возвращает число вершин фигуры.

**Возвращает:**

Тип | Описание
----- | -----
Integer | Число вершин.

### getPoint {#getPoint}

```javascript
{YMaps.Point} getPoint()
```

Возвращает вершину фигуры по ее индексу.

**Возвращает:**

Тип | Описание
----- | -----
[YMaps.Point](point.md) | Вершину.

