PP.MapBar(settings);
settings. JSON-объект со значениями свойств класса.
Конструктор MapBar создаёт экземпляр класса MapBar.
Для выполнения примера необходимо наличие на html-странице компонента MapChart с наименованием «map» (см. «Пример создания компонента MapChart»). Создадим столбиковый показатель для области слоя карты с идентификатором «RU-KYA» и отобразим всплывающую подсказку для него:
// Возвращает слой с областями карты
function getWorkLayer() {
return map.getLayer("Regions");
}
// Возвращает текущую отметку измерения для оси карты
function getTimelineIndex() {
return map.getTimeline().getCurrentStep();
}
// Возвращает базовый класс столбикового показателя карты
function getBarVisual() {
return map.getVisuals().barVisual0;
}
/* Создаёт объект для работы с настройками сопоставления данных
для столбикового показателя */
function createBarVisual() {
var barVisual = new PP.BarVisual({
BorderMappings: getBarVisual().getBorderMappings(),
ColorMappings: getBarVisual().getColorMappings(),
HeightMappings: getBarVisual().getHeightMappings(),
WidthMappings: getBarVisual().getWidthMappings()
});
// Настраиваем объект базового класса столбикового показателя
barVisual.setup(getTimelineIndex());
return barVisual;
}
// Выводит информацию о столбиковом показателе
function printBarVisualInfo(mapBar) {
console.log("Главное сопоставление данных: %s", mapBar.getMainMappingId(getTimelineIndex()));
console.log("Максимальное количество сопоставлений данных: %s", mapBar.getVisual().getMappingsCount());
console.log("Идентификатор источника данных для первого сопоставления: %s", mapBar.getVisual().getFirstDataSource().getId());
}
// Возвращает область слоя карты с указанным идентификатором
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} \n {%HeightValue} (за {%TimelineStep} год)"
}
});
toolTip.setFont(new PP.Font());
return toolTip;
}
// Отрисовывает всплывающую подсказку
function drawToolTip(mapBar) {
// Определяем цвет заливки всплывающей подсказки
var toolTipColor = mapBar.getToolTipColor();
mapBar.getToolTip().setBackground(new PP.SolidColorBrush({
Color: toolTipColor,
Opacity: 0.5
}));
// Отображаем всплывающую подсказку
mapBar.toggleToolTip();
if(!mapBar.getToolTip().getIsVisible()) {
//mapBar.toggleToolTip();
}
}
// Создаёт столбиковый показатель
function createMapBar() {
// Создаём столбиковый показатель
var mapBar = new PP.MapBar({
Chart: map,
Shape: getShape("RU-KYA"),
MaxBarsCount: 6, // Максимальное количество столбцов
BorderThickness: 0.5, // Толщина границы столбцов
Visual: createBarVisual(),
Layer: getWorkLayer(), // Слой карты
LeastWidthPart: 10, // Минимальная ширина столбца
LeastHeightPart: 15, // Минимальная высота столбца
IsPercentage: true, // Значение столбца является процентным показателем
HideZeroHeight: true, // Столбцы с нулевым значением будут скрыты
ToolTip: createToolTip() // Всплывающая подсказка
});
return mapBar;
}
// Отрисовывает столбиковый показатель
function drawMapBar(mapBar) {
mapBar.setSelectedIndex(getTimelineIndex());
mapBar.getLayer().getMapBarCollection().push(mapBar);
// Заново отрисовываем карту
map.draw();
}
// Выводит информацию, отображаемую в всплывающей подсказке
function printToolTipInfo(mapBar) {
// Устанавливаем столбиковый показатель
var bar1 = {};
var barKey = "mapBar";
bar1[barKey] = mapBar.getSettings();
getWorkLayer().setBars(bar1);
var bar2 = getWorkLayer().getBars()["mapBar"];
console.log("Всплывающая подсказка отображает данные для региона «%s» за %s год",
bar2.getShapeId(), bar2.getToolTipValues().TimelineStep);
}
// Создаём столбиковый показатель
var mapBar = createMapBar();
// Отрисовываем данный показатель
drawMapBar(mapBar);
// Отображаем всплывающую подсказку
drawToolTip(mapBar);
// При изменении года на временной оси будем обновлять подсказку
map.getTimeline().ValueChanged.add(function(sender, args) {
// Скрываем всплывающую подсказку
mapBar.toggleToolTip();
mapBar.setSelectedIndex(getTimelineIndex());
// Отображаем всплывающую подсказку
drawToolTip(mapBar);
});
В результате выполнения примера были отображены столбиковый показатель для области слоя карты с идентификатором «RU-KYA» и всплывающая подсказка для данного показателя. Значения столбцов выражены в процентах:

Теперь определим информацию о настройках сопоставления данных для столбикового показателя:
printBarVisualInfo(mapBar);
После выполнения данной строки сценария в консоли браузера были выведены наименование главного сопоставления данных, максимальное количество настроек сопоставлений данных и идентификатор источника данных для первого сопоставления:
Главное сопоставление данных: BarHeightDataDependency
Максимальное количество настроек сопоставлений данных: 1
Идентификатор источника данных для первого сопоставления
данных: DataSource0
Далее воспроизведём анимацию для столбикового показателя с длительностью, равной половине общего времени её воспроизведения:
mapBar.animate(0.5, [mapBar.getAnimationType()]);
В результате выполнения данной строки сценария всплывающая подсказка будет перемещена на несколько пикселей вверх.
Определим, для какого региона и за какой год отображены данные на всплывающей подсказке:
printToolTipInfo(mapBar);
После выполнения примера в консоли браузера будут выведены идентификатор региона и год, для которых отображены данные на подсказке:
Всплывающая подсказка отображает данные для региона «RU-KYA» за 2001 год
См. также: