IPolygonGeometryAccess

Расширяет IFreezable.

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

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

Конструктор

IPolygonGeometryAccess()

Поля

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

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

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

События

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

Методы

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

Boolean

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

freeze()

IFreezable

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

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

get(index)

Number[][]

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

getChildGeometry(index)

ILinearRingGeometryAccess

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

getClosest(anchorPosition)

Object

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

getCoordinates()

Number[][][]

Возвращает массив координат геометрии.

getFillRule()

String

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

getLength()

Integer

Возвращает количество контуров в геометрии.

insert(index, path)

IPolygonGeometryAccess

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

isFrozen()

Boolean

Возвращает 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)

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

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

Параметры:

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

Тип: Number[]

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

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

Пример:

var myPolygon = new ymaps.geometry.Polygon([[[69, 45], [68, 55], [86, 56]]]);
// Метод работает только с корректно заданной картой.
myPolygon.options.setParent(myMap.options);
myPolygon.geometry.setMap(myMap);
// Проверка, входит ли точка клика в полигон, с заданной выше геометрией.
myMap.events.add('click', function (e) {
    alert(myPolygon.geometry.contains(e.get('coords')) ? 'Ранил!' :
        'Мимо!');
});

get

{Number[][]} get(index)

Возвращает координаты контура с заданным индексом.

Параметры:

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

Тип: Integer

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

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

getChildGeometry

{ILinearRingGeometryAccess} getChildGeometry(index)

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

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

Параметры:

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

Тип: Integer

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

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

getClosest

{Object} getClosest(anchorPosition)

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

Возвращает объект со следующими полями:
  • 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]]
]);
var myPoint = new ymaps.Placemark([74, 52]);
// Создаем кратчайшую нормаль от контура полигона до точки.
var 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()

Возвращает массив координат геометрии.

getFillRule

{String} getFillRule()

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

Пример:

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()

Возвращает количество контуров в геометрии.

insert

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

Возвращает ссылку на себя.

Параметры:

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

Тип: Integer

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

path *

Тип: Number[][]

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

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

remove

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

Возвращает удаленный контур.

Параметры:

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

Тип: Integer

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

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

set

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

Возвращает ссылку на себя.

Параметры:

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

Тип: Integer

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

path *

Тип: Number[][]

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

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

setCoordinates

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

Возвращает ссылку на себя.

Параметры:

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

Тип: Number[][][]

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

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

setFillRule

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

Возвращает ссылку на себя.

Параметры:

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

Тип: String

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

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

splice

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

Возвращает удаленные контуры.

Параметры:

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

Тип: Integer

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

number *

Тип: Integer

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

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