checkEnclosure(x: Number, y: Number);
x. Абсцисса точки;
y. Ордината точки.
Метод checkEnclosure проверяет, соответствует ли точка с указанными координатами какому-либо из столбцов столбикового показателя.
Метод возвращает индекс столбца в столбиковом показателе, которому соответствует точка с указанными координатами. Иначе метод возвращает значение -1.
Для выполнения примера необходимо наличие на html-странице объекта типа MapBar с наименованием «mapBar» (см. «Конструктор MapVisualItem»). Проверим, соответствуют ли точки с указанными координатами какому-либо из столбцов столбикового показателя и пересекают ли их заданные области:
// Функция проверяет, соответствуют ли точка с указанными координатами какому-либо из столбцов столбикового показателя
function checkEnclosure(position) {
var enclosure = mapBar.checkEnclosure(position.getX(), position.getY());
console.log("Точка с координатами (%s, %s) %s",
position.getX(),
position.getY(), (enclosure > 0) ? "соответствует столбцу " + enclosure : "не принадлежит столбиковому показателю");
}
// Функция проверяет, пересекает ли указанная область какой-либо из столбцов столбикового показателя
function checkIntersection(rect) {
var left = rect.getLeft();
var top = rect.getTop();
var right = rect.getLeft() + rect.getWidth()
var bottom = rect.getTop() + rect.getHeight();
if (mapBar.checkIntersection(left, top, right, bottom, false)) {
if (mapBar.checkIntersection(left, top, right, bottom, true)) {
console.log("Область (%s, %s)-(%s, %s) полностью входит в область построения столбикового показателя",
left, top, right, bottom);
} else {
console.log("Область (%s, %s)-(%s, %s) пересекает столбиковый показатель",
left, top, right, bottom);
}
} else {
console.log("Область (%s, %s)-(%s, %s) не пересекает столбиковый показатель",
left, top, right, bottom);
}
}
// Проверяем, соответствуют ли точки с указанными координатами какому-либо из столбцов столбикового показателя
checkEnclosure(new PP.Point({
X: mapBar.getLeft() + mapBar.getWidth() / 2,
Y: Math.round(mapBar.getTop() - mapBar.getHeight() / 3)
}));
checkEnclosure(new PP.Point({
X: mapBar.getLeft(),
Y: mapBar.getTop()
}));
// Проверяем, пересекают ли указанные области какой-либо из столбцов столбикового показателя
var rect1 = [mapBar.getLeft() + mapBar.getWidth() / 2,
Math.round(mapBar.getTop() - mapBar.getHeight() / 3),
mapBar.getWidth(),
mapBar.getHeight()
];
checkIntersection(new PP.Rect(rect1.toString()));
var rect2 = [mapBar.getLeft(),
mapBar.getTop(),
mapBar.getWidth(),
mapBar.getHeight()
];
checkIntersection(new PP.Rect(rect2.toString()));
После выполнения примера в консоли браузера были выведены результаты всех проверок:
Точка с координатами (362, 171) соответствует столбцу 1
Точка с координатами (329.5, 182.5) не принадлежит столбиковому показателю
Область (362, 171)-(427, 206) пересекает столбиковый показатель
Область (329.5, 182.5)-(394.5, 217.5) не пересекает столбиковый показатель
См. также: