PP.MapVisualItem(settings);
settings. JSON-объект со значениями свойств класса.
Конструктор MapVisualItem создает экземпляр класса MapVisualItem.
Для выполнения примера необходимо наличие на html-странице компонента MapChart с наименованием «map» (см. «Пример создания компонента MapChart»). Добавим на карту новый визуальный элемент - столбиковый показатель для области слоя карты с идентификатором «RU-KYA» вместе со всплывающей подсказкой:
// Возвращает слой с областями карты
function getWorkLayer() {
return map.getLayer("Regions");
}
// Возвращает текущий индекс календарного измерения
function getSelectedIndex() {
return 2;
}
// Возвращает базовый класс столбикового показателя карты
function getBarVisual() {
return map.getVisuals().barVisual0;
}
// Возвращает область слоя карты с указанным идентификатором
function getShape(shapeId) {
var shape = getWorkLayer().getParentLayer().getShape(shapeId);
map.setBarHoverness(shape);
return shape;
}
// Создаёт всплывающую подсказку
function createToolTip() {
var toolTip = new PP.Ui.ChartTooltipBase({
HoverMode: PP.HoverMode.Click,
MaskText: {
IsAuto: true,
Value: "{%Name}"
}
});
toolTip.setFont(new PP.Font());
return toolTip;
}
// Отрисовывает всплывающую подсказку
function drawToolTip(mapBar) {
// Отображаем всплывающую подсказку
mapBar.getToolTip().setIsVisible(mapBar.getIsVisible());
mapBar.toggleToolTip();
}
// Создаёт столбиковый показатель
function createMapBar() {
// Создаём столбиковый показатель
var mapBar = new PP.MapBar({
BarDistance: 10, // Расстояние между столбцами
Chart: map,
Shape: getShape("RU-KYA"), // Область слоя карты, для которой строим показатель
MaxBarsCount: 3, // Максимальное количество столбцов
BorderThickness: 0.5, // Толщина границы столбцов
IsVisible: false, // Скрываем столбиковый показатель
Visual: getBarVisual(),
Layer: getWorkLayer(), // Слой карты
LeastWidthPart: 10, // Ширина столбца с минимальным значением
LeastHeightPart: 15, // Высота столбца с минимальным значением
IsPercentage: false, // Значение столбца является процентным показателем
ToolTip: createToolTip() // Всплывающая подсказка
});
mapBar.showBar = function () {
// Отображаем всплывающую подсказку
this.show();
// Отображаем столбиковый показатель
this.setIsVisible(true);
this.drawBar();
};
mapBar.hideBar = function () {
// Скрываем столбиковый показатель
this.setIsVisible(false);
this.drawBar();
// Скрываем всплывающую подсказку
this.hide();
};
mapBar.drawBar = function () {
// Отрисовываем столбиковый показатель
this.draw();
this.getChart().draw();
};
return mapBar;
}
// Отрисовывает столбиковый показатель
function drawMapBar(mapBar) {
mapBar.setSelectedIndex(getSelectedIndex());
mapBar.getLayer().getMapBarCollection().push(mapBar);
mapBar.drawBar();
}
// Выводит координаты текущей позиции столбикового показателя
function printBarPosition(mapBar) {
console.log("Позиция столбикового показателя: (%s, %s)",
mapBar.getLeft(), mapBar.getTop());
}
// Выводит размеры столбикового показателя
function printBarSize(mapBar) {
console.log("Размеры столбикового показателя: %s x %s",
mapBar.getWidth(), mapBar.getHeight());
}
// Перемещает столбиковый показатель
function moveBar(mapBar, x, y) {
var rect = mapBar.getBoundsRect();
mapBar.updatePosition(rect.getLeft() + rect.getWidth() / 2 + x,
rect.getTop() + rect.getHeight() / 2 + y);
mapBar.renderFrame(mapBar.getChart().getBarLayer());
}
// Создаём столбиковый показатель
var mapBar = createMapBar();
// Отрисовываем данный показатель
drawMapBar(mapBar);
// Отображаем всплывающую подсказку
drawToolTip(mapBar);
В результате выполнения примера на карту был добавлен новый визуальный элемент - столбиковый показатель для области слоя карты с идентификатором «RU-KYA» вместе со всплывающей подсказкой. Они являются скрытыми.
Теперь отобразим данный показатель, переместим его на 50 пикселей вниз и определим его новое расположение и размеры:
// Отображаем столбиковый показатель mapBar.showBar(); // Перемещаем его на 50 пикселей вниз moveBar(mapBar, 0, 50); // Определяем расположение показателя printBarPosition(mapBar); // Определяем размеры показателя printBarSize(mapBar);
После выполнения примера был отображён столбиковый показатель. Он смещён на 50 пикселей вниз. Столбцы показателя имеют абсолютные значения и расположены через 10 пикселей:

В консоли браузера были выведены координаты его новой позиции и размеры:
Позиция столбикового показателя: (328.513951, 250.248882)
Размеры столбикового показателя: 65 x 35
Чтобы скрыть столбиковый показатель и всплывающую подсказку, нужно выполнить следующую строку кода:
mapBar.hideBar();
После её выполнения столбиковый показатель и всплывающая подсказка были скрыты.
См. также: