PP.MapPie(settings);
settings. JSON-объект со значениями свойств класса.
Конструктор MapPie создаёт экземпляр класса MapPie.
Для выполнения примера необходимо наличие на html-странице компонента MapChart с наименованием «map» (см. «Пример создания компонента MapChart»). Создадим круговой показатель для области слоя карты с идентификатором «RU-KYA» и отобразим всплывающую подсказку для него:
// Возвращает слой с областями карты
function getWorkLayer() {
return map.getLayer("Regions");
}
// Возвращает текущую отметку измерения для оси карты
function getTimelineIndex() {
return 1;
}
// Возвращает базовый класс кругового показателя карты
function getPieVisual() {
return map.getVisuals().pieVisual0;
}
// Создаёт объект для работы с настройками сопоставления данных для кругового показателя
function createPieVisual() {
var pieVisual = new PP.PieVisual({
AngleMappings: getPieVisual().getAngleMappings(),
BorderMappings: getPieVisual().getBorderMappings(),
ColorMappings: getPieVisual().getColorMappings(),
RadiusMappings: getPieVisual().getRadiusMappings()
});
// Настраиваем объект базового класса кругового показателя
pieVisual.setup(getTimelineIndex());
return pieVisual;
}
// Выводит информацию о столбиковом показателе
function printPieVisualInfo(mapPie) {
console.log("Главное сопоставление данных: %s", mapPie.getMainMappingId(getTimelineIndex()));
console.log("Максимальное количество сопоставлений данных: %s", mapPie.getVisual().getMappingsCount());
console.log("Идентификатор источника данных для первого сопоставления: %s", mapPie.getVisual().getFirstDataSource().getId());
}
// Возвращает область слоя карты с указанным идентификатором
function getShape(shapeId) {
var shape = getWorkLayer().getParentLayer().getShape(shapeId);
map.setPieHoverness(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(mapPie) {
// Определяем цвет заливки всплывающей подсказки
var toolTipColor = mapPie.getToolTipColor();
mapPie.getToolTip().setBackground(new PP.SolidColorBrush({
Color: toolTipColor,
Opacity: 0.5
}));
// Отображаем всплывающую подсказку
mapPie.toggleToolTip();
}
// Создаёт круговой показатель
function createMapPie() {
// Создаём круговой показатель
var mapPie = new PP.MapPie({
Chart: map,
Shape: getShape("RU-KYA"),
MaxPiesCount: 3, // Максимальное количество секторов кругового показателя
BorderThickness: 0.5, // Толщина границ секторов
HideNoData: false, // Скроем сектора, соответствующие нулевым значениям
Visual: createPieVisual(),
Layer: getWorkLayer(), // Слой карты
LeastAnglePart: 15, // Минимальный размер сектора
LeastRadiusPart: 30, // Минимальный радиус сектора
StartAngle: 90, // Угол поворота первого сектора
ToolTip: createToolTip(), // Всплывающая подсказка
});
// Обновляет круговой показатель
mapPie.refresh = function() {
// Удаляем круговой показатель со слоя карты
clearMapPie(this);
// Проверяем наличие нескольких сопоставлений данных
if (!mapPie.isMeta()) {
this._isDrawed = false;
}
// Перерисовываем круговой показатель
this.draw();
// Отображаем круговой показатель
this.renderFrame(this.getChart().getPieLayer())
};
return mapPie;
}
// Удаляет круговой показатель со слоя карты
function clearMapPie(mapPie) {
mapPie.clear();
mapPie.getChart().getPieLayer().clear();
}
// Отрисовывает круговой показатель
function drawMapPie(mapPie) {
mapPie.setSelectedIndex(getTimelineIndex());
mapPie.getLayer().getMapPieCollection().push(mapPie);
// Заново отрисовываем карту
map.draw();
}
// Выводит информацию, отображаемую в всплывающей подсказке
function printToolTipInfo(mapPie) {
// Устанавливаем круговой показатель
var pie1 = {};
var pieKey = "mapPie";
pie1[pieKey] = mapPie.getSettings();
getWorkLayer().setPies(pie1);
var pie2 = getWorkLayer().getPies()["mapPie"];
console.log("Всплывающая подсказка отображает данные для региона «%s» за %s год",
pie2.getShapeId(), pie2.getToolTipValues().TimelineStep);
}
// Создаём круговой показатель
var mapPie = createMapPie();
// Отрисовываем данный показатель
drawMapPie(mapPie);
// Отображаем всплывающую подсказку
drawToolTip(mapPie);
В результате выполнения примера были отображены круговой показатель для области слоя карты с идентификатором «RU-KYA» и всплывающая подсказка для данного показателя:

Теперь определим информацию о настройках сопоставления данных для столбикового показателя:
printPieVisualInfo(mapPie);
После выполнения данной строки сценария в консоли браузера были выведены наименование главного сопоставления данных, максимальное количество настроек сопоставлений данных и идентификатор источника данных для первого сопоставления:
Главное сопоставление данных: pieAngle0
Максимальное количество сопоставлений данных: 1
Идентификатор источника данных для первого сопоставления:
BarBackSource
Определим, для какого региона и за какой год отображены данные на всплывающей подсказке:
printToolTipInfo(mapPie);
После выполнения примера в консоли браузера будут выведены идентификатор региона и год, для которых отображены данные на подсказке:
Всплывающая подсказка отображает данные для региона «RU-KYA» за 2003 год
См. также: