МноготочечныйОбъектГеографическойСхемы

Типы · GeographicalSchemaObjectMultiPoint

Содержит топологическую информацию о нескольких произвольных точках географической схемы, представляющих единый объект.

Полное описание, параметры и ограничения

МноготочечныйОбъектГеографическойСхемы (GeographicalSchemaObjectMultiPoint)

МноготочечныйОбъектГеографическойСхемы (GeographicalSchemaObjectMultiPoint)

Доступен, начиная с версии 8.1.

Свойства:
Видимость (Visible)
Значение (Value)
Картинка (Picture)
Маркер (Marker)
ОграничивающийПрямоугольник (BoundaryBox)
ОтображатьДанные (ShowData)
Подсказка (ToolTip)
ПоложениеОпорнойТочки (ReaperPointPosition)
Расшифровка (Details)
Символ (Char)
Слой (Layer)
ТипОтрисовки (ShowMode)
Точки (Points)
Цвет (Color)
ШрифтСимвола (CharacterFont)

Описание:

Содержит топологическую информацию о нескольких произвольных точках географической схемы, представляющих единый объект.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Отобразить несколько учебных адресов одним многоточечным объектом

Один объект хранит две координаты и единый ключ; пример показывает разницу между количеством объектов и количеством точек.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Собственная учебная база 8.5.1.1343, толстый клиент Windows. ГеографическаяСхема из этого урока недоступна в тонком/веб-клиенте: не вставляйте код в тонкий клиент.

  2. Создайте отдельную внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды. Вставьте весь код одного урока в модуль формы; назначьте команде обработчик Выполнить.

  3. Каждый запуск создаёт новую схему в локальной переменной. Реквизиты карты и макеты не нужны; готовые карты, SHP, GPS и сервисы карт не загружаются.

  4. Точки и зоны вымышленные учебные объекты. Координаты заданы в градусах, высота в метрах; это не местоположение пользователей или реальных заказов.

  5. На схеме нет подложки с границами стран/дорогами. Это собственная геометрия, а не полноценный навигатор. Показать открывает отдельное окно схемы.

  6. Запускайте уроки по одному. Статические проверки сверяют API установленной справки, но отрисовка и геометрические операции в 1С пока не проверены запуском.

&НаКлиенте
Процедура Выполнить(Команда)
    Схема = Новый ГеографическаяСхема;
    Схема.Обновление = Ложь;
    Схема.Проекция = ТипПроекцииГеографическойСхемы.ЦилиндрическаяРавноудаленнаяПроекция;
    Схема.СмещениеШироты = 0;
    Схема.СмещениеДолготы = 0;
    Пункты = Схема.Слои.Добавить("УчебныеПункты", Тип("ТочечныйОбъектГеографическойСхемы"));
    Пункты.Текст = "Учебные пункты";
    Пункты.Видимость = Истина;
    Пункты.РазрешитьВыбор = Истина;
    ПунктА = Пункты.Объекты.Добавить();
    ПунктА.Значение = "guide-point-A";
    ПунктА.Координаты = Новый ГеографическиеКоординаты(55, 37, 100);
    ПунктА.Видимость = Истина;
    ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
    ПунктА.Маркер = ТипМаркераГеографическойСхемы.БольшойКруг;
    ПунктА.Цвет = Новый Цвет(25, 95, 180);
    ПунктА.ОтображатьДанные = Ложь;
    ПунктА.Подсказка = "Вымышленный пункт А; только учебные данные";
    ПунктА.Расшифровка = Новый Структура("УчебныйКод", "guide-point-A");
    ПунктБ = Пункты.Объекты.Добавить();
    ПунктБ.Значение = "guide-point-B";
    ПунктБ.Координаты = Новый ГеографическиеКоординаты(55.1, 37.2, 110);
    ПунктБ.Видимость = Истина;
    ПунктБ.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
    ПунктБ.Маркер = ТипМаркераГеографическойСхемы.БольшойТреугольник;
    ПунктБ.Цвет = Новый Цвет(35, 145, 75);
    Группы = Схема.Слои.Добавить("УчебныеГруппы", Тип("МноготочечныйОбъектГеографическойСхемы"));
    Группы.Текст = "Вымышленные точки одной группы";
    Группа = Группы.Объекты.Добавить();
    Группа.Значение = "guide-group-001";
    Группа.Видимость = Истина;
    Группа.ОтображатьДанные = Ложь;
    Группа.Подсказка = "Один объект с двумя координатами";
    Группа.Расшифровка = "guide-group-001";
    Группа.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Символ;
    Группа.Символ = "G";
    Группа.ШрифтСимвола = Новый Шрифт("Arial", 12);
    Группа.Цвет = Новый Цвет(165, 60, 145);
    Группа.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
    Группа.Маркер = ТипМаркераГеографическойСхемы.МаленькийКвадрат;
    Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.03, 37.04));
    Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.08, 37.15));
    Сообщить(Группы.Объекты.Количество() = 1);
    Сообщить(Группа.Точки.Количество() = 2);
    Сообщить(Группа.Точки.Индекс(Группа.Точки.Получить(0)) = 0);
    Группа.Точки.Сдвинуть(0, 1);
    Сообщить(Группа.Точки.Получить(0).Широта = 55.08);
    Группа.Точки.Сдвинуть(1, -1);
    Группа.Точки.Добавить(Новый ГеографическиеКоординаты(55.09, 37.19));
    Группа.Точки.Удалить(Группа.Точки.Получить(2));
    Сообщить(Группа.Точки.Количество() = 2);
    Сообщить(Группа.Слой = Группы);
    Сообщить(ТипЗнч(Группа.ОграничивающийПрямоугольник) = Тип("ПрямоугольникГеографическойСхемы"));
    ВременнаяГруппа = Группы.Объекты.Добавить();
    ВременнаяГруппа.Точки.Добавить(Новый ГеографическиеКоординаты(55, 37));
    ВременнаяГруппа.Точки.Очистить();
    Группы.Объекты.Удалить(ВременнаяГруппа);
    ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Символ;
    ПунктА.Символ = "A";
    ПунктА.ШрифтСимвола = Новый Шрифт("Arial", 12);
    ПунктА.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
    Схема.Обновление = Истина;
    Схема.Показать("Собственная учебная схема — guide-owned-geo");
КонецПроцедуры

Разбор по шагам

  1. Новый слой имеет тип МноготочечныйОбъектГеографическойСхемы. Один объект может содержать несколько координат; у него общий идентификатор и оформление.

  2. Коллекция Точки добавляет ГеографическиеКоординаты, а не строковые адреса. Геокодирования нет.

  3. ТипОтрисовки Символ использует Символ и ШрифтСимвола. Маркер заранее настроен для возможного переключения, но в режиме Символ не выдаётся за активный стиль.

  4. Сдвиг и удаление выполняются на собственных координатах. Для Очистить создана отдельная временная группа, удалённая до показа.

  5. ПоложениеОпорнойТочки задаёт опору отрисовки картинки; пример сохраняет настройку, но не обещает видимый эффект в режиме Символ.

  6. Пункт А также показан буквой A, чтобы визуально отличить его от общего символа G группы.

Как проверить результат

  1. Семь проверок ожидаются Истина; группа содержит две координаты, но слой содержит один объект.

  2. На собственном толстом клиенте должны быть две буквы G и пункт A. Позиция/шрифт требуют фактической визуальной проверки.

Ожидаемый результат

Различаются топологический объект и его отдельные координаты; показаны коллекции и символы без внешних данных.

На что обратить внимание

  1. Если каждому адресу нужны разные данные/стиль, создавайте отдельные точечные объекты, не одну многоточечную группу.

  2. Удалить принимает объект координаты. Номер 2 в Получить — индекс, а не сама координата.

  3. Настройка Маркер не меняет режим Символ автоматически.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Оформить заголовок и легенду собственной схемы

Настраиваем три отдельные области схемы и создаём образец картинки из собственной учебной геометрии, не загружая чужие изображения.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Собственная учебная база 8.5.1.1343, толстый клиент Windows. ГеографическаяСхема из этого урока недоступна в тонком/веб-клиенте: не вставляйте код в тонкий клиент.

  2. Создайте отдельную внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды. Вставьте весь код одного урока в модуль формы; назначьте команде обработчик Выполнить.

  3. Каждый запуск создаёт новую схему в локальной переменной. Реквизиты карты и макеты не нужны; готовые карты, SHP, GPS и сервисы карт не загружаются.

  4. Точки и зоны вымышленные учебные объекты. Координаты заданы в градусах, высота в метрах; это не местоположение пользователей или реальных заказов.

  5. На схеме нет подложки с границами стран/дорогами. Это собственная геометрия, а не полноценный навигатор. Показать открывает отдельное окно схемы.

  6. Запускайте уроки по одному. Статические проверки сверяют API установленной справки, но отрисовка и геометрические операции в 1С пока не проверены запуском.

&НаКлиенте
Процедура Выполнить(Команда)
    Схема = Новый ГеографическаяСхема;
    Схема.Обновление = Ложь;
    Схема.Проекция = ТипПроекцииГеографическойСхемы.ЦилиндрическаяРавноудаленнаяПроекция;
    Схема.СмещениеШироты = 0;
    Схема.СмещениеДолготы = 0;
    Пункты = Схема.Слои.Добавить("УчебныеПункты", Тип("ТочечныйОбъектГеографическойСхемы"));
    Пункты.Текст = "Учебные пункты";
    Пункты.Видимость = Истина;
    Пункты.РазрешитьВыбор = Истина;
    ПунктА = Пункты.Объекты.Добавить();
    ПунктА.Значение = "guide-point-A";
    ПунктА.Координаты = Новый ГеографическиеКоординаты(55, 37, 100);
    ПунктА.Видимость = Истина;
    ПунктА.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
    ПунктА.Маркер = ТипМаркераГеографическойСхемы.БольшойКруг;
    ПунктА.Цвет = Новый Цвет(25, 95, 180);
    ПунктА.ОтображатьДанные = Ложь;
    ПунктА.Подсказка = "Вымышленный пункт А; только учебные данные";
    ПунктА.Расшифровка = Новый Структура("УчебныйКод", "guide-point-A");
    ПунктБ = Пункты.Объекты.Добавить();
    ПунктБ.Значение = "guide-point-B";
    ПунктБ.Координаты = Новый ГеографическиеКоординаты(55.1, 37.2, 110);
    ПунктБ.Видимость = Истина;
    ПунктБ.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Маркер;
    ПунктБ.Маркер = ТипМаркераГеографическойСхемы.БольшойТреугольник;
    ПунктБ.Цвет = Новый Цвет(35, 145, 75);
    Схема.ОтображатьЗаголовок = Истина;
    Схема.ОтображатьЛегенду = Истина;
    Заголовок = Схема.ОбластьЗаголовка;
    Заголовок.Текст = "Собственные учебные пункты — не реальные адреса";
    Заголовок.Выравнивание = ГоризонтальноеПоложение.Центр;
    Заголовок.Прозрачный = Ложь;
    Заголовок.ПрозрачныйФон = Ложь;
    Заголовок.ЦветТекста = Новый Цвет(25, 45, 65);
    Заголовок.ЦветФона = Новый Цвет(240, 245, 250);
    Заголовок.Шрифт = Новый Шрифт("Arial", 12);
    Заголовок.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Заголовок.ЦветРамки = Новый Цвет(145, 165, 185);
    Построение = Схема.ОбластьПостроения;
    Построение.Прозрачный = Ложь;
    Построение.ПрозрачныйФон = Ложь;
    Построение.ЦветФона = Новый Цвет(255, 255, 255);
    Построение.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Построение.ЦветРамки = Новый Цвет(180, 195, 210);
    Легенда = Схема.ОбластьЛегенды;
    Легенда.МасштабнаяЛинейка = Ложь;
    Легенда.Прозрачный = Ложь;
    Легенда.ПрозрачныйФон = Ложь;
    Легенда.Цвет = Новый Цвет(25, 45, 65);
    Легенда.ЦветФона = Новый Цвет(245, 248, 251);
    Легенда.Шрифт = Новый Шрифт("Arial", 10);
    Легенда.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
    Легенда.ЦветРамки = Новый Цвет(180, 195, 210);
    УчебнаяСерия = Пункты.Серии.Добавить("УчебнаяПодпись");
    УчебнаяСерия.ТипОтображения = ТипОтображенияСерииСлояГеографическойСхемы.Текст;
    Пункты.УстановитьЗначение(ПунктА, УчебнаяСерия, "A");
    Пункты.УстановитьЗначение(ПунктБ, УчебнаяСерия, "B");
    ПервыйОбразец = Легенда.Элементы.Добавить();
    ПервыйОбразец.Серия = УчебнаяСерия;
    ПервыйОбразец.ТекстОбразца = "A/B";
    ПервыйОбразец.ТекстПодписи = "Вымышленные учебные пункты";
    ПервыйОбразец.ОтображатьШкалу = ТипОтображенияШкалыЭлементаЛегендыГеографическойСхемы.НеОтображать;
    ПервыйОбразец.ЦветОбразца = Новый Цвет(25, 95, 180);
    ПервыйОбразец.ШрифтОбразца = Новый Шрифт("Arial", 10);
    Сообщить(Легенда.Элементы.Индекс(ПервыйОбразец) = 0);
    Сообщить(Легенда.Элементы.Получить(0) = ПервыйОбразец);
    ВременныйОбразец = Легенда.Элементы.Добавить();
    ВременныйОбразец.ТекстПодписи = "Временный образец";
    Легенда.Элементы.Сдвинуть(1, -1);
    Сообщить(Легенда.Элементы.Получить(0) = ВременныйОбразец);
    Легенда.Элементы.Удалить(ВременныйОбразец);
    Сообщить(Легенда.Элементы.Количество() = 1);
    Схема.Обновление = Истина;
    СобственнаяКартинка = Схема.ПолучитьКартинку(32, 32, ФорматКартинки.PNG, Ложь);
    Сообщить(ТипЗнч(СобственнаяКартинка) = Тип("Картинка"));
    ПервыйОбразец.Картинка = СобственнаяКартинка;
    ПунктБ.Картинка = СобственнаяКартинка;
    ПунктБ.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Картинка;
    ПунктБ.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
    СлойКартинок = Схема.Слои.Добавить("УчебныеКартинки", Тип("МноготочечныйОбъектГеографическойСхемы"));
    Картинки = СлойКартинок.Объекты.Добавить();
    Картинки.Точки.Добавить(Новый ГеографическиеКоординаты(55.06, 37.09));
    Картинки.Картинка = СобственнаяКартинка;
    Картинки.ТипОтрисовки = ТипОтображенияТочечногоОбъектаГеографическойСхемы.Картинка;
    Картинки.ПоложениеОпорнойТочки = ПоложениеОпорнойТочкиОтрисовки.Центр;
    ВременнаяСхема = Новый ГеографическаяСхема;
    ВременнаяСхема.ОбластьЛегенды.Элементы.Добавить();
    ВременнаяСхема.ОбластьЛегенды.Элементы.Очистить();
    Сообщить(ВременнаяСхема.ОбластьЛегенды.Элементы.Количество() = 0);
    Сообщить(Легенда.Элементы.Количество() = 1);
    Схема.Обновление = Истина;
    Схема.Показать("Собственная учебная схема — guide-owned-geo");
КонецПроцедуры

Разбор по шагам

  1. ОбластьЗаголовка, ОбластьЛегенды, ОбластьПостроения уже принадлежат схеме. Свойства областей можно менять, сами readonly-ссылки не заменяем.

  2. Текст заголовка, фон, рамка и её цвет задаются независимо. Прозрачный и ПрозрачныйФон в справке имеют одинаковое описание; ставим одинаковое значение и не обещаем разные эффекты.

  3. Масштабную линейку отключаем: учебная схема не является расчётом дорожных расстояний.

  4. Элемент легенды содержит серию, образец и подпись. Очистить показан на другой новой схеме, основной образец не уничтожается.

  5. ПолучитьКартинку делает PNG в памяти 32×32 из собственной схемы до назначения этой картинки пунктам. Это растровый снимок, не живая рекурсивная ссылка.

  6. Та же собственная картинка назначается пункту Б, многоточечному объекту и образцу легенды. Для точек режим Картинка включается явно; опора Центр теперь относится к активному режиму.

  7. Никакой PNG на диск не записывается и чужая картинка по URL не загружается. Маленький снимок нужен для демонстрации API, не выдается за хороший картографический значок.

Как проверить результат

  1. Семь проверок ожидаются Истина; в основной легенде один образец, в временной ноль.

  2. В собственном толстом клиенте проверьте заголовок, фон областей и картинки. Статический тест не доказывает точный внешний вид.

Ожидаемый результат

Показаны реальные области документа, коллекция легенды и картинка как стиль географического объекта.

На что обратить внимание

  1. Шрифт Arial должен быть доступен на клиенте; фактическое оформление зависит от среды.

  2. Растровый снимок не меняется автоматически при последующем изменении схемы.

  3. Не использовать рекурсивное создание всё более крупных картинок и не задавать размеры из непроверенного ввода.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.