Масштабирование по выбранному объекту географической схемы
В процессе работы с географической схемой может возникнуть необходимость приблизить какой-либо фрагмент для более детального рассмотрения.
- Описание
- Подробнее
Описание
Например, есть подобная схема:

Но пользователю хочется посмотреть только Ярославскую область и при этом подробнее.
Сделать это можно, если установить свойству ПоддержкаМасштаба поля географической схемы значение ЗаданнаяОбласть перечисления РежимОтображенияГеографическойСхемы и задать границы необходимого ограничивающего прямоугольника через свойство географической схемы ОтображаемаяОбласть.
Здесь уместно вспомнить, что каждый топологический объект географической схемы обладает свойством ОграничивающийПрямоугольник. Ограничивающий прямоугольник хранит координаты прямоугольника, в который вписан топологический объект.
Воспользовавшись тем, что у элемента управления ПолеГеографическойСхемы есть событие Выбор, которое возникает при двойном щелчке на объекте схемы, можно написать следующий код:
// Процедура вызывается как реакция на событие Выбор ПоляГеографическойСхемы.
// Событие возникает при двойном щелчке на топологическом объекте географической схемы
// Параметры:
// Элемент - элемент управления, который послал событие;
// ОбъектКарты - топологический объект географической схемы, по которому сделали двойной щелчок;
// Серия - серия данных географической схемы, если щелчок был сделан в области графика;
// СтандартнаяОбработка - булево, признак выполнения стандартной (системной) обработки события начала выбора
//для данного элемента формы документа.
//
Процедура ПолеГеографическойСхемыВыбор(Элемент, ОбъектКарты, Серия, СтандартнаяОбработка)
ОграничивающийПрямоугольник = ОбъектКарты.ОграничивающийПрямоугольник;
ОтображаемаяОбласть = ЭлементыФормы.ПолеГеографическойСхемы.ОтображаемаяОбласть;
// Установим у схемы новые границы ограничивающего прямоугольника
ОтображаемаяОбласть.ДолготаВосточнойГраницы = ОграничивающийПрямоугольник.ДолготаВосточнойГраницы;
ОтображаемаяОбласть.ДолготаЗападнойГраницы = ОграничивающийПрямоугольник.ДолготаЗападнойГраницы;
ОтображаемаяОбласть.ШиротаСевернойГраницы = ОграничивающийПрямоугольник.ШиротаСевернойГраницы;
ОтображаемаяОбласть.ШиротаЮжнойГраницы = ОграничивающийПрямоугольник.ШиротаЮжнойГраницы;
// Установим новый режим масштабирования - удерживание заданной области
Схема.ПоддержкаМасштаба = РежимОтображенияГеографическойСхемы.ЗаданнаяОбласть
КонецПроцедуры В результате при щелчке по объекту географической схемы получится результат, подобный этому:


