rebuildLabel();
Метод rebuildLabel перерисовывает метку для области слоя карты.
Для выполнения примера необходимо наличие на html-странице компонента MapChart с наименованием «map» (см. «Пример создания компонента MapChart»). Нарисуем метку для области слоя карты с идентификатором «RU-KYA». Затем уменьшим масштаб карты, обновив расположение созданной метки:
// Получим область слоя карты с идентификатором «RU» // Получим область слоя карты с идентификатором «RU» var shape = map.getShape("RU-KYA"); // Разрешим отображение всплывающей подсказки shape._tooltipOn = true; // Получим прямоугольную область, ограничивающую область слоя карты var bounds = shape.getBoundsRect(); // Определим отступы метки от левого и верхнего края карты var labelLeft = bounds.getLeft() + bounds.getWidth() / 4 + (map.getWidth() - map.getTopobaseSize().width) / 2; var labelTop = bounds.getTop() + bounds.getHeight() / 2 + (map.getHeight() - map.getTopobaseSize().height) / 2; // Создадим метку var label = new PP.MapLabel({ Chart: map, MaskText: "{%Name}", // Маска текста Left: labelLeft, Top: labelTop, }); // Установим метку для области слоя карты shape.setLabel(label); // Перерисуем метку shape.rebuildLabel(label); // Определим центр карты var pointZoom = new PP.Point(map.getWidth() / 2, map.getHeight() / 2); // Уменьшим масштаб карты в 2 раза map.setScale(0.5, pointZoom, 0, 0); // Пометим, что для области слоя данных установлена метка shape._labelOn = true; // Установим первоначальный центр области слоя карты для обновления расположения метки shape._labelOrigX = bounds.getLeft() + bounds.getWidth() / 2; shape._labelOrigY = bounds.getTop() + bounds.getHeight() / 2; // Обновим расположение метки shape.updateLabelPosition();
В результате выполнения примера для области слоя карты с идентификатором «RU-KYA» была нарисована метка с текстом, содержащим наименование данной области. После уменьшения масштаба карты в 2 раза расположение метки было обновлено:
См. также: