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