IPolygonGeometryAccess

Расширяет IFreezable.

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

Конструктор | Поля | События | Методы

Конструктор

IPolygonGeometryAccess()

Поля

Имя Тип Описание
events IEventManager

Менеджер событий объекта.

Унаследовано от IFreezable.

События

Имя Описание
change
Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldCoordinates - старые координаты;
  • newCoordinates - новые координаты;
  • oldFillRule - старый алгоритм заливки;
  • newFillRule - новые алгоритм заливки.

Методы

Имя Возвращает Описание
contains(position)

Boolean

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

freeze()

IFreezable

Переводит объект в "замороженный" режим.

Унаследован от IFreezable.

get(index)

Number[][]

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

getChildGeometry(index)

ILinearRingGeometryAccess

Создает и возвращает объект ILinearRingGeometryAccess для заданного контура.

getClosest(anchorPosition)

Object

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

getCoordinates()

Number[][][]

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

getFillRule()

String

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

getLength()

Integer

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

insert(index, path)

IPolygonGeometryAccess

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

isFrozen()

Boolean

Returns true, если объект находится в "замороженном" режиме, иначе false.

Унаследован от IFreezable.

remove(index)

ILinearRingGeometryAccess

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

set(index, path)

IPolygonGeometryAccess

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

setCoordinates(coordinates)

IPolygonGeometryAccess

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

setFillRule(fillRule)

IPolygonGeometryAccess

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

splice(index, number)

ILinearRingGeometryAccess[]

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

unfreeze()

IFreezable

Переводит объект в активный режим.

Унаследован от IFreezable.

Описание событий

change

Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldCoordinates - старые координаты;
  • newCoordinates - новые координаты;
  • oldFillRule - старый алгоритм заливки;
  • newFillRule - новые алгоритм заливки.

Описание методов

contains

{Boolean} contains(position)

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

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

Параметры:

Параметр Значение по умолчанию Описание
position *

Тип: Number[]

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

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

Пример:

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

{Number[][]} get(index)

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

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

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

getChildGeometry

{ILinearRingGeometryAccess} getChildGeometry(index)

Создает и возвращает объект ILinearRingGeometryAccess для заданного контура.

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

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

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

getClosest

{Object} getClosest(anchorPosition)

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

Returns объект со следующими полями:
  • position - точка на контуре многоугольника ближайшая к anchorPosition;
  • distance - расстояние от anchorPosition до position;
  • closestPointIndex - индекс вершины многоугольника, ближайшей к position;
  • nextPointIndex - индекс вершины многоугольника, следующей за position;
  • prevPointIndex - индекс вершины многоугольника, предшествующей position;
  • pathIndex - индекс контура многоугольника, к которому относится найденная точка.
Поля nextPointIndex, prevPointIndex могут отсутствовать, если position совпадает с одной из вершин многоугольника.

Параметры:

Параметр Значение по умолчанию Описание
anchorPosition *

Тип: Number[]

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

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

Пример:

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

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

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

getFillRule

{String} getFillRule()

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

Пример:

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

{Integer} getLength()

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

insert

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

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

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

path *

Тип: Number[][]

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

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

remove

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

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

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

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

set

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

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

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

path *

Тип: Number[][]

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

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

setCoordinates

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

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

Параметры:

Параметр Значение по умолчанию Описание
coordinates *

Тип: Number[][][]

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

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

setFillRule

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

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

Параметры:

Параметр Значение по умолчанию Описание
fillRule *

Тип: String

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

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

splice

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

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

Параметры:

Параметр Значение по умолчанию Описание
index *

Тип: Integer

Индекс, начиная с которого производится удаление и добавление контуров.

number *

Тип: Integer

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

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