IPolygonGeometryAccess
Расширяет IFreezable.
Интерфейс доступа к геометрии "Многоугольник".
Конструктор | Поля | События | Методы
Конструктор
IPolygonGeometryAccess()
Поля
Имя |
Тип |
Описание |
Менеджер событий объекта. Унаследовано от IFreezable. |
События
Имя |
Описание |
Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
|
Методы
Имя |
Возвращает |
Описание |
Boolean |
Проверяет, лежит ли переданная точка внутри многоугольника. |
|
freeze() |
Переводит объект в "замороженный" режим. Унаследован от IFreezable. |
|
Number[][] |
Возвращает координаты контура c заданным индексом. |
|
Создает и возвращает объект ILinearRingGeometryAccess для заданного контура. |
||
Object |
Ищет на контуре многоугольника точку, ближайшую к anchorPosition. |
|
Number[][][] |
Возвращает массив координат геометрии. |
|
String |
Возвращает идентификатор алгоритма заливки. |
|
Integer |
Возвращает количество контуров в геометрии. |
|
Добавляет новый контур с заданным индексом. |
||
isFrozen() |
Boolean |
Возвращает true, если объект находится в "замороженном" режиме, иначе false. Унаследован от IFreezable. |
Удаляет контур с заданным индексом. |
||
Задает координаты контура c заданным индексом. |
||
Задает массив координат геометрии. |
||
Задает алгоритм заливки многоугольника. |
||
Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number. |
||
unfreeze() |
Переводит объект в активный режим. Унаследован от IFreezable. |
Описание событий
change
Изменение координат. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
- oldCoordinates — старые координаты;
- newCoordinates - новые координаты;
- oldFillRule - старый алгоритм заливки;
- newFillRule - новые алгоритм заливки.
Описание методов
contains
{Boolean} contains(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)
Возвращает координаты контура с заданным индексом.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс контура. |
* Обязательный параметр/опция.
getChildGeometry
{ILinearRingGeometryAccess} getChildGeometry(index)
Создает и возвращает объект ILinearRingGeometryAccess для заданного контура.
Возвращает объект геометрии, соответствующий заданному контуру.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс контура. |
* Обязательный параметр/опция.
getClosest
{Object} getClosest(anchorPosition)
Ищет на контуре многоугольника точку, ближайшую к anchorPosition.
Возвращает объект со следующими полями:
- position - точка на контуре многоугольника ближайшая к anchorPosition;
- distance - расстояние от anchorPosition до position;
- closestPointIndex - индекс вершины многоугольника, ближайшей к position;
- nextPointIndex - индекс вершины многоугольника, следующей за position;
- prevPointIndex - индекс вершины многоугольника, предшествующей position;
- pathIndex - индекс контура многоугольника, к которому относится найденная точка.
Поля nextPointIndex, prevPointIndex могут отсутствовать, если position совпадает с одной из вершин многоугольника.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: 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
{IPolygonGeometryAccess} insert(index, path)
Добавляет новый контур с заданным индексом.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс контура. |
|
|
— |
Тип: Number[][] Координаты контура. |
* Обязательный параметр/опция.
remove
{ILinearRingGeometryAccess} remove(index)
Удаляет контур с заданным индексом.
Возвращает удаленный контур.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс контура. |
* Обязательный параметр/опция.
set
{IPolygonGeometryAccess} set(index, path)
Задает координаты контура c заданным индексом.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс контура. |
|
|
— |
Тип: Number[][] Координаты контура. |
* Обязательный параметр/опция.
setCoordinates
{IPolygonGeometryAccess} setCoordinates(coordinates)
Задает массив координат геометрии.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Number[][][] Координаты геометрии. |
* Обязательный параметр/опция.
setFillRule
{IPolygonGeometryAccess} setFillRule(fillRule)
Задает алгоритм заливки многоугольника.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: String Идентификатор алгоритма заливки. |
* Обязательный параметр/опция.
splice
{ILinearRingGeometryAccess[]} splice(index, number)
Удаляет определенное число контуров начиная с заданного индекса. При этом на место удаляемых контуров могут быть добавлены новые. Координаты новых контуров можно передавать дополнительными аргументами после параметра number.
Возвращает удаленные контуры.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: Integer Индекс, начиная с которого производится удаление и добавление контуров. |
|
— |
Тип: Integer Количество удаляемых контуров. |
* Обязательный параметр/опция.
Обязательный параметр.