YMaps.Hotspots.NPolyShape

Расширяет YMaps.Hotspots.IShape.

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

Конструктор

Имя Описание
YMaps.Hotspots.NPolyShape(coords)

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

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

Методы

Имя Возвращает Описание
getNumPoints() Integer Возвращает число вершин фигуры.
getPoint() YMaps.Point Возвращает вершину фигуры по ее индексу.

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

Из YMaps.Hotspots.IShape:
contains, getMaxX, getMaxY, getMinX, getMinY, getOwner, setOwner

Подробное описание конструктора

YMaps.Hotspots.NPolyShape(coords)

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

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

Пример:

// Создадим многоугольник в виде буквы "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 вершин).

Подробное описание методов

getNumPoints

{Integer} getNumPoints()

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

Возвращает:

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

getPoint

{YMaps.Point} getPoint()

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

Возвращает:

Тип Описание
YMaps.Point Вершину.