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

# YMaps.Hotspots.CPolyShape

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

Выпуклый многоугольник.

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

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


{% note info %}

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

{% endnote %}



{% note info %}

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

{% endnote %}||
|#

# Методы

Имя | Возвращает | Описание
----- | ----- | -----
[getNumPoints](hotspots.cpolyshape.md#getNumPoints)() | Integer | Возвращает число вершин фигуры.
[getPoint](hotspots.cpolyshape.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.CPolyShape(coords)
```

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


{% note info %}

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

{% endnote %}



{% note info %}

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

{% endnote %}


**Пример:**

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

// Пересчитаем точку отсчета в пиксели на последнем масштабе
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 cpoly = new YMaps.Hotspots.CPolyShape(offsets);
```

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

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

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

### getNumPoints {#getNumPoints}

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

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

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

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

### getPoint {#getPoint}

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

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

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

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

