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