| Документация

Редактирование объектов. Плагин Редактирование.

Редактирование объектов и табличных записей на карте. Плагин Редактирование. Общие положения.

CoGIS SOE позволяет создавать и редактировать пространственные объекты, их атрибуты, вложенные файлы и связи с другими объектами. Таким образом, функционал ГИС-сервера может быть значительно расширен за счет возможности ограничивать область действия пользователя определенными слоями, областями внутри слоев, типами объектов.

В рамках одного сервиса можно настроить несколько правил с разными ограничениями для разных групп пользователей.

Операции и условия их применения, задаваемые в плагине типа Редактирование , позволяют:

  1. Создавать, после чего обновлять и удалять на карте:
    1. объекты в слое картографического сервиса и их значения; редактировать геометрию объектов; объединять объекты;
    2. записи в таблицах картографического сервиса;
    3. файлы, прикрепленные в Карточке объекта или к записям в таблицах.
  2. Добавлять, удалять связи:
    1. «Один к одному» – при создании или обновлении объекта в слое он связывается с объектом другого слоя по ключевому полю;
    2. «Один ко многим» – при создании или обновлении объекта в слое он связывается с объектами другого слоя по ключевому полю;
    3. «Много ко многим» – при создании или обновлении объектов в слое связывать их с объектами другого слоя по ключевому полю.
  3. Ограничивать редактирование по:
    1. операциям;
    2. группам пользователей;
    3. слоям;
    4. значениям объектов;
    5. территории;
    6. объектам.
  4. Выполнять геотриггеры:
    1. Создание пространственных связей;
    2. Редактирование связанных объектов;
    3. Обновление поля;
    4. Геокодирование;
    5. Построение буферной зоны;
    6. Рассылка сообщений;
    7. Подсчет количества связей;
    8. Рассчитать геометрические атрибуты.

Примечание: Геотриггеры запускаются автоматически при выполнении операции плагина Редактирование.

Настройка плагина Редактирование

На панели управления нажмите Добавить плагин , из списка доступных плагинов выберите плагин Редактирование, пример ниже, см. Рисунок 446 .

Задайте принципы работы плагина редактирования, а именно:

  1. Будут ли пользователям разрешены операции редактирования. Если есть необходимость разрешать или запрещать выполнение операции в зависимости от каких-то данных, задайте Условие на разрешение операций , укажите имя таблицы базы данных, и введите определяющий запрос. Условие выполнится, если по определяющему запросу вернется хотя бы один объект из указанной таблицы, удовлетворяющий запросу.
  2. Какие операции будут разрешены.
  3. Какой группе пользователей будет разрешено выполнять операции.
  4. Над объектами какого слоя картографического сервиса будут выполняться операции. Какие ограничения будут применяться.
  5. Будет ли пользователям разрешено редактировать значение объекта в указанном атрибутивном поле.
  6. Будет ли пользователям разрешено редактировать геометрию объектов.
  7. Каким ограничениям должен удовлетворять отредактированный объект.
  8. Будут ли переопределены настройки картографического сервиса:
    1. символика создания объекта;
    2. значение объекта по умолчанию в атрибутивном поле.
  9. Какое максимальное количество файлов пользователи смогут прикрепить к объекту. Какого размера должны быть файлы, и какими свойствами должна обладать картинка. На карте файлы к объекту прикрепляются в его Карточке объекта посредством кнопки , если создан шаблон Карточки объекта , одним из блоков которого является блок Файлы . Как создать шаблон Карточки объекта и блок Файлы , описано в пункте Шаблон Карточки объекта , см. п. 7.3.10 .

Рисунок 446 - Настройки плагина Редактирование в разделе Правила SOE

Рабочий процесс настроек плагина Редактирование:

  1. В панели управления Правила SOE нажмите на кнопку Добавить плагин и выберите плагин Редактирование .
  2. Плагин в дереве Каталога плагинов по умолчанию отображается с названием, определенным по типу плагина. Для переименования плагина предназначено поле Название .
  3. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять плагин Редактирования .
  4. Разрешает операции - для разрешения операции переключите тумблер в положение Да , а для запрещения - в положение Нет . Для установки дополнительных ограничений в рамках данного правила, кликните на кнопку и задайте необходимые опции.
  5. Операции - включите или отключите кнопки для разрешения выполнения операций, по умолчанию будут доступны все операции. Если выполнение операций разрешено, то по умолчанию будут доступны все операции. Выберите, какие операции выполняться не будут, и нажмите соответствующую кнопку. Описание кнопок, активирующих выполнение операций, приведено ниже, см. Таблица 8.

    Таблица 8 – Кнопки, активирующие выполнение операций

    Над чем выполняется операция Тип операции
    Операции над объектом Создание Обновление Удаление
    Операции над связями Добавление Обновление  Удаление
    Операции над вложениями Добавление Обновление Удаление

  6. В опции Для пользователей укажите в выпадающем списке, какая группа пользователей или групп пользователей сможет выполнять операции.
    • Любых - редактирование будет разрешено всем пользователям.
    • Авторизованных - редактирование будет доступно для всех авторизованных пользователей.
    • Входящих в любую из групп - редактирование будет разрешено пользователям, входящим хотя бы в одну из указанных групп, если групп несколько, введите их названия через запятую.
    • Входящих во все группы - редактирование будет разрешено пользователям, входящим во все указанные группы, если групп несколько, введите их названия через запятую.
  7. Вы можете задать, к объектам каких слоев картографического сервиса будут применяться операции редактирования. Для этого в поле Слои нажмите на кнопку Добавить   и укажите номера слоев, соблюдая правила ввода – номера слоев можно указать через дефис или запятую. Например 0,1,5-10,14.
  8. Если необходимо задать настройки по ограничению слоев картографического сервиса, кликните на кнопку и поставьте нужные отметки, см. Рисунок 447 .

    Рисунок 447 - Настройки ограничений для слоев

    • Определяющий запрос - заданные настройки могут применяться к объектам слоя, значения которых удовлетворяют определенному условию. Условие записывается в виде SQL-выражения в поле Определяющий запрос , которое открывается нажатием на кнопку  , пример выражения ниже, см. Рисунок 448 .

    Выражение строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

    Рисунок 448 - Пример ограничения с помощью Определяющего запроса для слоя

    • Ограничение по экстенту - укажите территорию экстента, в границах которой пользователь сможет создавать или редактировать объекты, для этого отметьте опцию Ограничение по экстенту и задайте координаты XMax , XMin , YMax , YMin и координатную систему экстента карты, см. Рисунок 449 .

    Рисунок 449 - Пример ограничения по экстенту карты

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

    Если необходимо, добавьте дополнительные параметры к плагину Редактирование:

  9. По умолчанию пользователям разрешено изменять геометрию объекта. Чтобы запретить эту операцию, укажите Нет для опции Редактировать геометрию .
  10. Помимо возможности создавать или обновлять объекты, вы можете предоставить пользователям возможность ввода или изменения значений определенных атрибутивных полей.
    • Если вы хотите разрешить пользователям изменять значения только нескольких атрибутивных полей, нажмите   Редактируемые поля и введите названия атрибутивных полей.
    • Если вы хотите разрешить пользователям изменять значения всех атрибутивных полей, за исключением нескольких, нажмите   Не редактируемые поля .
  11. Чтобы задать обязательность заполнения полей при создании/редактировании объектов, даже когда в картографическом сервисе эти поля не обязательные, нажмите Обязательные поля и укажите все поля, которые должны быть обязательно заполненными. Данная настройка является заданной на уровне Правила SOE/Плагина Редактирования , что приоритетнее, чем обязательность, заданная на уровне Конструктора.
  12. Ограничения после редактирования - кроме того, вы можете задать условие на значение созданного или обновленного объекта в атрибутивном поле, определить территорию, в границах которой должен быть создан объект, и задать условия, которым должен удовлетворять объект. Для этого нажмите  и задайте ограничения. При применении данной опции объект будет проверен на соответствие заданным параметрам и только после проверки сохраняется в базу данных и будет виден другим пользователям, подробнее см. п. 8.4.3 .
  13. Шаблоны создания объектов – параметр позволяет переопределить условные обозначения объекта или значения по умолчанию у картографического сервиса, для этого нажмите на кнопку Добавить .
    • В поле Название введите название для кнопки вызова окна, например введите текст Создание объекта .
    • В поле Слои укажите номера слоев, соблюдая правила ввода – номера слоев можно указать через дефис или запятую. Например: 0,1,5-10,14.
    • В опции Символ для переопределения условного обозначения загрузите файл, кликните на кнопку Загрузить . Если необходимо удалить загруженный символ, кликните кнопку Удалить.
    • Задайте Значение по умолчанию , укажите название атрибутивного поля и к нему задайте значения по умолчанию, тогда в режиме создания/редактирования объектов в Карточке объектов назначенные значения автоматически будут заполняться по умолчанию к определенным полям слоя. Например, если назначить Значения по умолчанию к полям в виде макросов, такие как текущий авторизованный пользователь с фамилией {CurrentUser.LastName}, именем {CurrentUser.FirstName}, электронной почтой {CurrentUser.Email} и т.д., тогда после авторизации пользователя в процессе создания/редактирования объектов в Карточке объектов будет автоматически заполнена атрибутивная информация о нем: Фамилия, Имя, Электронная почта и т.д, указанная пользователем при регистрации в личном кабинете , пример ниже, см. Рисунок 450 . Подробнее о макросах, используемых в настройках, см. п. 9 .

    Рисунок 450 - Пример заданных значений по умолчанию в плагине Редактирование

  14. Задайте дополнительные параметры для добавления вложений к объектам, которые пользователи смогут прикрепить, их количество, размеры и свойства, см. Рисунок 451 .

Рисунок 451 - Дополнительные параметры для добавления вложений к объектам

Принцип работы плагина Редактирование с вложенными геотриггерами

При настройке раздела Правила SOE необходимо понимать принцип работы плагина Редактирования и вложенных в него геотриггеров.

1. Сначала нужно задать соответствующие настройки к картографическому сервису плагина Редактирование и добавить каскад геотриггеров с настройками к картографическому приложению. Заданные настройки можно проверить на странице Правила SOE, см. Рисунок 452 .

Рисунок 452 - Пример настройки плагина Редактирование и вложенных в него геотриггеров

2. Для указанного плагина Редактирование , помимо стандартной проверки названия сервиса, указанных пользователей и слоя, CoGIS проверяет заданные ограничения на фильтры к слою/слоям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , пример ниже, см. Рисунок 453 . Например, если у пользователя нет прав на редактирование, появится соответствующее сообщение.

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

Рисунок 453 - Пример настройки плагина Редактирование с доступом для определенной группы пользователей для определенного слоя и ограничением при помощи определяющего запроса

3. После отработки плагина Редактирование CoGIS начнет запуск вложенных в него геотриггеров. Например, один геотриггер может изменить состояние объекта, а второй геотриггер будет применен к уже обновленному объекту. Например, при создании точечного объекта первый геотриггер связывает его с полигональными объектами, расположенными в пределах заданного экстента, а затем срабатывает второй геотриггер, который выполняет подсчет получившихся связей, пример настроек показан выше, см. Рисунок 452 .

4. Для геотриггера можно задать условия, при которых разрешено изменение объектов, с помощью настроек: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам . В свою очередь, для данных ограничений можно указать следующие условия, пример ниже, см. Рисунок 454 :

а) если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в исходном состоянии «до обновления», или до сохранения объекта в базе данных.

b) если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в изменяемом состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. то есть после отработки плагина Редактирование (см. п. 1 и 2) и отработки геотриггеров (п. 3).

Рисунок 454 - Пример настройки одного геотриггера по определяющему запросу на основе разных условий состояния объекта

5. После выполнения этапов 1-4, описанных выше, CoGIS возвращается к плагину Редактирование для проверки условий, заданных в настройках Ограничения после редактирования , см. Рисунок 455 .

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

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

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

Рисунок 455 - Пример настройки плагина Редактирование с настройкой Ограничения после редактирования

Геотриггеры

Геотриггеры. Общие положения.

Геотриггер срабатывает при выполнении одной из операций плагина редактирования.

Геотриггеры можно вложить в плагин редактирования, в этом случае геотриггеры будут срабатывать при выполнении одной из операций данного плагина редактирования подробнее см. п. 8.4.3 .

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

В плагин редактирования или папку можно добавить следующие геотриггеры:

  1. Создание пространственных связей;
  2. Редактирование связанных объектов;
  3. Обновление поля;
  4. Геокодирование;
  5. Построение буферной зоны;
  6. Рассылка сообщений;
  7. Подсчет количества связей;
  8. Рассчитать геометрические атрибуты;
  9. Вызов SQL-команды;
  10. Вызов задачи геообработки;
  11. Вызов .NET метода.

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

Геотриггеры считываются снизу вверх. При пересечении настроек используются и применяются самые нижние геотриггеры.

Для описания всех геотриггеров одного типа в строке поиска введите название геотриггера, например Создание пространственных связей .

Шаблоны геотриггеров

В разделе Правила SOE можно создать и настроить собственные шаблоны геотриггеров на основе любого из стандартных геотриггеров. Например, для создания шаблона геотриггера Рассылка уведомлений использовался стандартный геотриггер Вызов SQL-команды , к которому были добавлены дополнительные параметры, где, при помощи SQL-команды было задано: кому отправлять уведомление, категория уведомления, текст уведомления по sms, тема письма и текст для уведомления по электронной почте и т.д ., пример ниже, см. Рисунок 456 .

Чтобы создать собственный шаблон геотриггера, используя стандартные геотриггеры, нажмите на кнопку Редактирование шаблонных геотриггеров, обратите внимание на то, что вместо каталога правил появится режим Каталог шаблонов , добавьте нужный геотриггер, задайте название и соответствующие настройки.

Чтобы сохранить ваш шаблон геотриггера с заданными настройками, выберите его в режиме Каталог шаблонов и на панели инструментов нажмите кнопку Экспорт в XML-файл , а если необходимо его импортировать, нажмите на кнопку Импорт в XML файл .

Рисунок 456 - Пример настройки собственного шаблона геотриггера Рассылка уведомлений на основе стандартного геотриггера Вызов SQL-команды

Связывание объектов по пересечению. Создание пространственных связей.

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

Чтобы добавить геотриггер, нажмите , выберите Создание пространственных связей , выделенный ниже, см. Рисунок 457 и задайте необходимые настройки см. Рисунок 458 .

Рисунок 457 - Добавление геотриггера Создание пространственных связей

Рисунок 458 - Настройки геотриггера Создание пространственных связей

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования срабатывать геотриггер. По умолчанию  будет. Выберите, при выполнении каких операций он будет срабатывать: создание, редактирование или удаление объекта.
    1. Для какой группы пользователей будет выполняться геотриггер. Для этого в выпадающем списке Для пользователей выберите нужную группу.
    2. При изменении в каких слоях картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.

      Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

      Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 459 :

      1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

      Рисунок 459 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

      Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 460 :

      2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

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

      Рисунок 460 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

    3. Найти связанный слой – укажите тип связи объекта. В выпадающем списке выберите, каким образом находить связь между объектами слоев – по названию класса пространственных объектов или по названию класса отношений.
    4. Имя класса объектов/связи - укажите название класса пространственных объектов или название класса отношений.
    5. С какими объектами можно связывать созданный или редактируемый объект. Задайте Определяющий запрос на SQL.
    6. Тип выбора объектов для связывания – укажите, каким образом выбрать объект для создания связи, если созданный объект пересекся с несколькими объектами:
      1. Создать связи между созданным объектом и объектами, с которыми он пересекся. Выберите «все».
      2. Создать связи между созданным объектом и объектом, пересечение с которым было построено в первую очередь. Выберите «первый».
      3. Создать связи между созданным объектом и объектом, пересечение с которым является наилучшим. Выберите «лучший».
    7. Пространственные отношения - выберите из выпадающего списка пространственные отношения при определении связи.
    8. Удалять другие связи – включите Да/Нет. Должны ли при создании новой связи удаляться другие, если тип связи «один-ко-многим» или «многие-ко-многим».
    9. Минимальный процент пересечения – укажите для линейных и полигональных объектов минимальный процент пересечения.
    10. Буфер для связывания – укажите дополнительную буферную зону для поиска пересечения в «буфер для связывания».

Автоматическая запись значения одного из связанных объектов. Редактирование связанных объектов.

Данный геотриггер срабатывает при выполнении следующих операций:

  1. создание связи между объектами;
  2. удаление связи между объектами;
  3. обновление одного из связанных объектов.

Геотриггер автоматически записывает в атрибутивное поле следующие значения:

  1. простое значение, константа;
  2. составное или расчетное значение;
  3. значение связанного объекта;
  4. значение при отсутствии связи у объекта;
  5. геометрия связанного объекта.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Редактирование связанных объектов , выделенный ниже, см. Рисунок 461 и добавьте необходимые настройки, см. Рисунок 462 .

Рисунок 461 - Добавление геотриггера Редактирование связанных объектов

Рисунок 462 - Настройки геотриггера Редактирование связанных объектов

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию  будет. Выберите, при выполнении каких операций он будет срабатывать: создание, удаление связи между объектами, обновление одного из связанных объектов.
    1. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
    2. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите и укажите номера слоев.
    3. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .

      Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 463 :

      1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

      Рисунок 463 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

      Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления», или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 464 :

      2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

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

      Рисунок 464 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

    4. Найти связанный слой – укажите тип связи объекта. В выпадающем списке выберите, каким образом находить связь между объектами слоев – по названию класса пространственных объектов или по названию класса отношений.
    5. Имя класса объектов/связи – укажите название класса пространственных объектов или название класса отношений.
    6. Название поля для записи значения – укажите название атрибутивного поля, в которое будет записано значение.
    7. Значение - выберите интерпретатор при задании выражения для расчета необходимого значения.

      Значение для записи:

      1. Простого значения, константы, заданного по умолчанию;
      2. Составного или расчетного значения, например укажите выражение <[AREA] / 10000>, что означает пересчет значения площади в квадратных метрах атрибутивного поля AREA в гектары;
      3. Значения связанного объекта в одном или нескольких атрибутивных полях. Название атрибутивного поля, значение которого берется, указывается в квадратных скобках;
      4. Значения при отсутствии связи у объекта;
      5. Геометрии связанного объекта. Например: Object.Shape.X.
    8. Тип объединения – объединение, сумма, среднее, количество, минимальное значение, максимальное значение.
    9. Дополнительная буферная зона для поиска пересечения в Разделитель .
    10. Нужно ли объединять различные значения.
    11. Максимальное количество значений.
    12. Сортировка по атрибутивному полю.

Автоматическая запись значения объекта в атрибутивное поле. Обновление поля.

Данный геотриггер выполняется при выполнении следующих операций плагина редактирования:

  1. создание объекта;
  2. обновление объекта.

Геотриггер автоматически записывает в атрибутивное поле следующие значения:

  1. простое значение, константа;
  2. составное или расчетное значение;
  3. значение одного или нескольких атрибутивных полей своего класса;
  4. значение при отсутствии связи у объекта;
  5. геометрия объекта.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Обновление поля , см. Рисунок 465 и добавьте необходимые настройки, см. Рисунок 466 .

Рисунок 465 - Добавление геотриггера Обновление поля

Рисунок 466 - Настройки геотриггера Обновление поля

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию  будет. Выберите, при выполнении каких операций – создание, обновление объекта.
    1. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
    2. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите и укажите номера слоев.
    3. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3. В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .

      Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 467 :

      1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

      Рисунок 467 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

      Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 468 :

      2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

      Выражение запроса строится в следующем виде:

      <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

      или

      <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

      Например:

      Status = ‘Выполнен’

      Length > 20.

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

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

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

      Рисунок 468 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

    4. Название атрибутивного поля, в которое будет записано значение в поле Название поля .
    5. Значение - выберите интерпретатор при задании выражения для расчета необходимого значения.

      Значение для записи:

      1. Простого значения, константы, заданного по умолчанию;
      2. Составного или расчетного значения, например укажите выражение <[AREA] / 10000>, что означает пересчет значения площади в квадратных метрах атрибутивного поля AREA в гектары;
      3. Значения связанного объекта в одном или нескольких атрибутивных полях. Название атрибутивного поля, значение которого берется, указывается в квадратных скобках;
      4. Значения при отсутствии связи у объекта;
      5. Геометрии связанного объекта. Например: Object.Shape.X.
      6. информации, связанной с объектом, используя макросы, приведенные ниже, см. Таблица 9 .
    6. Будет ли выполняться геотриггер, если изменены все атрибутивные поля. По умолчанию геотриггер будет выполняться. Чтобы геотриггер не выполнялся, укажите Нет для опции Срабатывать, если изменены все поля .
    7. Значение объекта, при которых должен срабатывать геотриггер. Задайте Определяющий запрос на SQL для атрибутивных полей, значения которых были изменены.

Примечание: Формат времени и даты задается в соответствии со стандартами описания, например, "dd.MM.yyyy" = 01.01.2019.

Таблица 9 – Макросы

Макрос Что будет записано в значение
DateTime.Now:<format> Текущая дата и время с указанием формата вставки значения
LocalDateTime, LocalDate, LocalTime, LocalDay, LocalMonth, LocalYear, LocalHour :<format> Текущая дата и время с указанием формата вставки значения. Значения будут вставлены в локальном времени.
CurrentDate: <format> Текущая дата с указанием формата вставки значения
CurrentDateTime:<format> Текущая дата и время с указанием формата вставки значения
CurrentYear Текущий год
CurrentMonth Текущий месяц
CurrentDay Текущий день
CurrentHour Текущий час
User.Name Текущий пользователь
CurrentUser Текущий пользователь
CurrentUserEmail Email текущего пользователя
CurrentGroups Все группы текущего пользователя через ;
CurrentGroup.mygroup 1 если пользователь входит в группу mygroup, иначе 0
MapService.Name Название картографического сервиса, в слое которого создается, обновляется или удаляется объект
Layer.ID Номер слоя, в котором создается, обновляется или удаляется объект
Layer.Caption Название текущего слоя, в котором создается, обновляется или удаляется объект
Object.ID Уникальный номер создаваемого или изменяемого объекта. Значение объекта, которое он принимает в системном атрибутивном поле OBJECTID.
Action Операция плагина редактирования, которая выполняется над объектом
Objects.Caption Значение редактируемого объекта, которое он принимает в атрибутивном поле Display Field
Objects.Caption.Previous Значение объекта, которое он принимает в атрибутивном поле Display Field, до его изменения
Object.Attributes Список значений редактируемого объекта, которые он принимает во всех атрибутивных полях слоя. Для форматирования выводимой строки можно использовать суффикс через двоеточие, например - Object.Attributes.MyFieldDate:UTC:dd.MM.yyyy - Object.Attributes.MyFieldDate:LOCAL:dd.MM.yyyy HH:mm:ss
Object.Attributes.Previous Список значений объекта, которые он принимает во всех атрибутивных полях слоя, до его редактирования
Object.AttributeStates Список значений объекта, которые он принимает во всех атрибутивных полях слоя, до и после его редактирования
Object.Updates Список измененных значений объекта до и после его редактирования
Relation.From.Row.ID Уникальный номер текущего объекта, к которому добавляется связь. Значение объекта, которое он принимает в системном атрибутивном поле OBJECTID.
Relation.To.Row.ID Уникальный номер объекта, для которого строится связь с другим объектом слоя. Значение объекта, которое он принимает в системном атрибутивном поле OBJECTID.
Relation.From.Row.Caption Значение объекта в атрибутивном поле Display Field, к которому добавляется связь
Relation.To.Row.Caption Значение объекта в атрибутивном поле Display Field, для которого строится связь с другим объектом слоя
Relation.From.Row.Attributes Значения объекта, к которому добавляется связь, во всех атрибутивных полях
Relation.To.Row.Attributes Значения объекта, для которого строится связь с другим объектом слоя, во всех атрибутивных полях
Attachment.Row.ID Уникальный номер объекта, для которого добавляется или удаляется вложение. Значение объекта, которое он принимает в системном атрибутивном поле OBJECTID.
Attachment.Row.Caption Значение объекта в атрибутивном поле Display Field, для которого добавляется или удаляется вложение
Attachment.ContentType Типы вложений, которые могут быть переданы по стандартам MIME
Attachment.FileName Название файла вложения
Attachment.Size Размер вложения
Attachment.ContentType.Previous Типы вложений до изменения вложения
Attachment.FileName.Previous Имя файла вложения до изменения вложения
Attachment.Size.Previous Размер вложения до изменения вложения

Прямое и обратное геокодирование при создании и обновлении объектов

Данный геотриггер срабатывает при выполнении следующих операций плагина редактирования:

  1. создание объекта;
  2. обновление объекта.

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

  1. создание объекта по адресу;
  2. создание объектов по адресам при загрузке Excel- или CSV-файла, содержащего адреса;
  3. определение адреса объекта при его создании или изменении местоположения на карте, запись значения в атрибутивное поле;
  4. пакетная запись адресов объектов, создаваемых по координатам, в соответствующие атрибутивные поля при загрузке Excel-, CSV-, SHP-файла, содержащего координаты.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер и выберите Геокодирование , выделенный ниже, см. Рисунок 469 и задайте необходимые настройки, см. Рисунок 470 .

Рисунок 469 - Добавление геотриггера Геокодирование

Рисунок 470 - Настройки геотриггера Геокодирование

Определите:

  1. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – создание, обновление объекта.
  2. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  3. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  4. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3. В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 471 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 471 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 472 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 472 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  5. Укажите адрес сервиса геокодирования, на основе которого будет работать геотриггер. По данному адресу сервиса геокодирования должно быть установлено подключение в Конструкторе во вкладке Сервисы , Сервис геокодирования , описание которого приведено в пункте Сервис геокодирования , см. п. 7.3.6 .
  6. Как сопоставить значения. Сопоставление атрибутивного поля сервиса геокодирования с атрибутивным полем слоя, в котором создан или отредактирован объект. Укажите атрибутивное поле сервиса геокодирования в поле Атрибут сервиса и название атрибутивного поля слоя, в котором создан или отредактирован объект в поле Значение из объекта .
  7. Поля в классе пространственных объектов для записи в них адреса при поиске координат по адресу.
  8. При вводе адреса объекта в соответствующее атрибутивное поле местоположение объекта будет автоматически изменяться. Данная настройка установлена по умолчанию  для опции Обновлять расположение по адресу выбрано Да .
  9. При изменении местоположения объекта автоматически будет определено местоположение объекта и перезаписан адрес в значении соответствующего атрибутивного поля. Данная настройка установлена по умолчанию – для опции Обновлять адрес по расположению выбрано Да .
  10. Если изменены и адрес, и геометрия, по умолчанию у адреса приоритет, и координаты будут пересчитаны. Если приоритетнее геометрия, переключите Приоритет адреса в положение Нет .
  11. Радиус поиска адреса относительно редактируемого объекта, например, для установки адресного ориентира объекту, который находится вблизи здания с адресом.

Построение буферной зоны редактируемого объекта

Данный геотриггер выполняется при выполнении следующих операций плагина редактирования:

  1. создание объекта;
  2. обновление объекта;
  3. удаление объекта.

Геотриггер используется для автоматического построения, корректировки, удаления буферной зоны объекта в определенном полигональном слое. Буферные зоны могут создаваться для объектов с разным типом геометрии.

Основными функциями геотриггера являются:

  1. построение буферной зоны по кругу, квадрату, с расчетом по дорожной сети (зона транспортной доступности);
  2. установление связи между буферной зоной и ее основным объектом;
  3. корректировка буферной зоны при изменении геометрии основного объекта;
  4. установка, корректировка размера буферной зоны по атрибуту основного объекта или по расчетному значению;
  5. определение системы координат и метода построения буферной зоны;
  6. удаление буферной зоны при удалении основного объекта.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер и выберите Построение буферной зоны , выделенный ниже, см. Рисунок 473 и задайте необходимые настройки, см. Рисунок 474 .

Рисунок 473 - Добавление геотриггера Построение буферной зоны

Рисунок 474 - Настройки геотриггера Построение буферной зоны

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Операции – включите или отключите операции плагина редактирования для работы геотриггера, по умолчанию доступны операции Создание объекта , Обновление объекта и Удаление объекта .
  4. В опции Для пользователей выберите из выпадающего списка, для каких пользователей или групп пользователей будет выполняться геотриггер.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев, соблюдая правила ввода – номера слоев можно указать через дефис или запятую. Например: 0,1,5-10,14 .
  6. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 475 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 475 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 476 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 476 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  7. В параметре Найти связанный слой выберите из выпадающего списка По названию класса объектов и в параметре Имя класса объектов/связей введите имя класса пространственных объектов для создания/редактирования буферной зоны, добавленной как полигональный слой на карту. Или выберите По названию класса связей и в параметре Имя класса объектов/связей укажите название или id номер класса отношений между слоями основного объекта и полигональным слоем для создания/редактирования буферной зоны.
  8. Выберите тип буферной зоны, для этого выберите из выпадающего списка Круг, Квадрат, Зона транспортной доступности .
  9. Укажите размер буферной зоны:
    1. как константа, заданная по умолчанию;
    2. как значение основного объекта в заданном атрибутивном поле, укажите атрибутивное поле;
    3. как расчетное значение, для этого выберите интерпретатор при задании выражения для расчета необходимого значения.
  10. Записать размер буфера в поле - укажите атрибутивное поле буферной зоны, в которое запишется размер буферной зоны при создании или обновлении.
  11. Выберите координатную систему для построения буферной зоны, чтобы получить правильную геометрию в плане отображения и расчетных геометрических значений (площадь, периметр).
  12. Тип построения буферной зоны – геодезический или плоскостной. По умолчанию задан геодезический тип. Чтобы выбрать плоскостной, переведите Использовать геодезический буфер в режим Нет .
  13. Если буферная зона строится по дорожной сети как зона транспортной доступности, введите адрес сетевого сервиса.

Автоматическая рассылка сообщений при редактировании объектов

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

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Рассылка сообщений , выделенный ниже, см. Рисунок 477 и добавьте необходимые настройки, см. Рисунок 478 .

Рисунок 477 - Добавление геотриггера Рассылка сообщений

Рисунок 478 - Настройки геотриггера Рассылка сообщений

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – создание, обновление объекта.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
  6. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 479 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 479 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 480 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 480 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  7. Для параметра Тип получателя по умолчанию указано Электронная почта . Если нужно, выберите другой параметр – помимо электронной почты также доступны Логин пользователя, Имя группы пользователей .
  8. Укажите электронные адреса пользователей, пример ниже, см. Рисунок 481 . В поле Кому нажмите .
  9. Укажите тему письма. Можно использовать макрос, см. Таблица 10. Например: <Изменён объект Object.Name> .
  10. Введите текст сообщения. Можно использовать макрос, см. Таблица 10.

    Например:

    Изменён объект: {Object.Name}

    Изменил объект: {CurrentUser}

    Координаты объекта до изменения: X {Object.ShapeBeforeChanges.CentroidX}, Y {Object.ShapeBeforeChanges.CentroidY}

    Текущие координаты объекта: X {Object.Shape.CentroidX}, Y {Object.Shape.CentroidY}

    Рисунок 481 - Пример настройки геотриггера Рассылка сообщений с текстом сообщений, содержащий макросы

  11. Может ли текст быть в формате HTML.
  12. Если надо переопределить настройки SMTP-сервера, отметьте опцию Переопределить SMTP-настройки . Если данная опция не активна, сообщения будут отправляться в соответствии с настройками SMTP-сервера, которые задаются на странице Настройки , к ней можно перейти из меню Администрирование . Описание настроек приведено в пункте Настройка автоматической рассылки сообщений пользователям .

С помощью макросов, приведенных ниже, см. Таблица 10, вы можете создать шаблон сообщения.

Таблица 10 – Макросы. Шаблон сообщений.

Макросы Описание
CurrentDate Текущая дата
CurrentDate-7d CurrentDate+2d Текущая дата +/- несколько дней
CurrentDateTime Текущая дата и время
CurrentDateTime-1h CurrentDateTime+1h Текущая дата и время +/- несколько часов
По объекту
Object.Name Значение редактируемого объекта, которое он принимает в атрибутивном поле Display Field
Object.Caption Значение редактируемого объекта, которое он принимает в атрибутивном поле Display Field
Object.NameBeforeUpdate Значение объекта, которое он принимает в атрибутивном поле Display Field, до его изменения
Object.CaptionBeforeUpdate Значение объекта, которое он принимает в атрибутивном поле Display Field, после его изменения
Object.Id Уникальный номер создаваемого, обновляемого или удаляемого объекта. Значение объекта, которое он принимает в системном атрибутивном поле OBJECTID, которое может использоваться при формировании динамической ссылки на карту.
Object.FieldValues Значения объекта во всех атрибутивных полях. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.Attributes Значения объекта во всех атрибутивных полях с выводом значений атрибутивных доменов вместо кода. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.AttributeChanges Значения объекта во всех атрибутивных полях с выводом значений атрибутивных доменов вместо кода до и после редактирования объекта. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.FieldValuesChanges Значения объекта во всех атрибутивных полях до и после его редактирования. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.AttributesBeforeUpdate Значения объекта во всех атрибутивных полях с выводом значений атрибутивных доменов вместо кода до редактирования объекта. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.FieldValuesBeforeUpdate Значения объекта во всех атрибутивных полях до редактирования объекта. Значения отображаются в табличном виде для HTML и строчном для текста.
Object.Attributes.<Field> Значение создаваемого или редактируемого объекта, которое он принимает в запрашиваемом атрибутивном поле. Например, макрос Object.Attributes.STATUS вставит значение объекта в атрибутивном поле STATUS в текст письма.
Object.ShapeBeforeChanges.CentroidX X-координата точечного объекта или центроида линии, полигона до обновления
Object.ShapeBeforeChanges.CentroidY Y-координата точечного объекта или центроида линии, полигона до обновления
Object.Shape.CentroidX Текущая X-координата точечного объекта или центроида линии, полигона
Object.Shape.CentroidY Текущая Y-координата точечного объекта или центроида линии, полигона
По вложениям
Attachment.Object Для макроса Attachment.Object доступны все подмакросы «По объекту»
Attachment.File.Size Размер вложения
Attachment.FileBeforeUpdate.Size Размер вложения до изменения
Attachment.File.Name Название файла вложения
Attachment.FileBeforeUpdate.Name Имя файла вложения до изменения
Attachment.File.Type Тип файла вложения
Attachment.FileBeforeUpdate.Type Тип файла вложения до изменения
Attachment.FileChanges Размер, имя и тип файла вложения до и после изменения. Значения отображаются в табличном виде для HTML и строчном для текста.
По связанным объектам
Relation.To.Attributes.<Field> Значение объекта, к которому добавляется связь, в определенном атрибутивном поле. Например, Relation.To. Attributes.Name. Для макроса Relation.To доступны все подмакросы «По объекту».
Relation.From. Attributes.<Field> Значение объекта, для которого строится связь, в определенном атрибутивном поле. Например, Relation.From. Attributes.Type. Для макроса Relation.From доступны все подмакросы «По объекту».

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

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

  1. добавление связи;
  2. удаление связи.

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

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Подсчет количества связей , выделенный на рисунке ниже, см. Рисунок 482 и добавьте необходимые настройки, см. Рисунок 483 .

Рисунок 482 - Добавление геотриггера Подсчет количества связей

Рисунок 483 - Настройки геотриггера Подсчет количества связей

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – добавление, удаление связи.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
    1. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля .

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 484 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 484 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 485 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 485 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  6. Тип связи объекта. Найти связанный слой по названию класса пространственных объектов или класса отношений.
  7. Введите название класса пространственных объектов или класса отношений.
  8. В какой объект нужно записывать значение – задайте Определяющий запрос на SQL.
  9. Укажите атрибутивное поле, в которое будет записано значение количества связанных объектов.
  10. Выберите тип подсчета.
  11. Значение Правда , записываемое в атрибутивное поле при наличии связи, работает при выборе типа подсчета «подсчет связей».
  12. Значение Ложь , записываемое в атрибутивное поле при наличии связи, работает при выборе типа подсчета «связь существует».

Расчет геометрических атрибутов редактируемого объекта

Геотриггер предназначен для записи значений редактируемого объекта в атрибутивные поля:

  1. Центральная точка;
  2. Площадь;
  3. Геодезическая площадь;
  4. Длина;
  5. Геодезическая длина;
  6. Количество частей;
  7. Количество точек;
  8. WKT.

Геотриггер выполняется при выполнении следующих операций плагина редактирования:

  1. создание объекта;
  2. обновление объекта.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Рассчитать геометрические атрибуты , выделенный ниже, см. Рисунок 486 и добавьте необходимые настройки, см. Рисунок 487 .

Рисунок 486 - Добавление геотриггера Рассчитать геометрические атрибуты

Рисунок 487 - Настройки геотриггера Рассчитать геометрические атрибуты

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – создание, обновление объекта.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
    1. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 488 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 488 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 489 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 489 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  6. Систему координат, в которой будет рассчитана геометрия.
  7. Единицы измерения, в которых будет рассчитана геометрия.
  8. Округление, укажите необходимое количество знаков после запятой.
  9. Определите, что будет рассчитывать геотриггер, и в какое поле будет записываться результат:
    1. Поле атрибута объекта для записи координат центроида, три поля (X, Y, Z).
    2. Поле атрибута объекта для записи площади/геодезической площади полигонального объекта.
    3. Поле атрибута объекта для записи длины/геодезической длины, для записи длины линейного объекта или периметра полигона.
    4. Поле атрибута объекта для записи количества частей, для мультиполигональных объектов.
    5. Поле атрибута объекта для записи количества точек, для мультиточечных объектов.
    6. Поле атрибута объекта для записи геометрии объекта в формате WKT.

Вызов SQL-команды

Геотриггер Вызов SQL-команды позволяет выполнить SQL-команду, используя контекст текущего объекта в процессе редактирования при создании/обновлении/удалении объекта, исходя из настроек плагина редактирования. Например, при вызове SQL-процедуры добавить записи изменений в лог-таблицу. С помощью геотриггера Вызов SQL-команды нельзя обновить текущий объект.

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов SQL-команды , выделенный ниже, см. Рисунок 490 и задайте необходимые настройки, см. Рисунок 491 .

Рисунок 490 - Добавление геотриггера Вызов SQL-команды

Рисунок 491 - Настройки геотриггера Вызов задачи геообработки

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций будет выполняться геотриггер, см. Таблица 8.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
    1. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 492 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 492 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 493 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 493 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  6. Время запуска - укажите время запуска выполнения SQL-команды для автоматического срабатывания геотриггера при создании/изменении/удалении объектов, по умолчанию задано После обновления , пример ниже, см. Рисунок 494 .

    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:

    • До обновления – запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  7. Из какого слоя брать БД укажите номер слоя/таблицы для выполнения SQL-команды. Если поле останется пустым, то геотриггер сработает для текущего слоя/таблицы редактируемого объекта.
  8. SQL-команда – укажите необходимую SQL-команду.
  9. Таймаут – по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения команды, по окончании которого выполнение геотриггера будет остановлено.

Рисунок 494 - Пример настройки геотриггера Вызов SQL-команды

Вызов задачи геообработки

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

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

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов задачи геообработки , выделенный ниже, см. Рисунок 495 и добавьте необходимые настройки, см. Рисунок 496 .

Рисунок 495 - Добавление геотриггера Вызов задачи геообработки

Рисунок 496 - Настройки геотриггера Вызов задачи геообработки

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – создание, обновление объекта.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
    1. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 497 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 497 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 498 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 498 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  6. Время запуска - укажите время запуска задачи сервиса геообработки для автоматического срабатывания геотриггера при создании/изменении/удалении объектов, по умолчанию задано После обновления .

    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:

    • До обновления – запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  7. URL сервиса геообработки – укажите url сервиса геообработки для его подключения.
  8. Логин к сервису – укажите логин для подключения к сервису геообработки, если указывать логин не нужно, оставьте строку пустой.
  9. Пароль к сервису – укажите пароль для подключения к сервису геообработки, если указывать пароль не нужно, оставьте строку пустой.
  10. Задача геообработки в сервисе – укажите задачу сервиса геообработки (task).
  11. Входные параметры задачи – нажмите , в Имя параметра укажите имя входного публичного параметра и укажите Значение для запуска задачи сервиса геообработки. Для значений используйте значения атрибутивных полей и макросы, тогда при вызове геотриггер автоматически сформирует указанные значения, пример ниже, см. Рисунок 499 .
  12. Обновляемые поля по выходных параметрам – нажмите , в Имя параметра укажите имя выходного публичного параметра и укажите Значение для запуска задачи сервиса геообработки. Для значений используйте значения атрибутивных полей или константу, пример ниже, см. Рисунок 499 . Тогда после выполнения задачи сервиса геообработки геотриггер автоматически сработает после изменения объекта и обновит атрибутивные поля по указанным выходным параметрам.
  13. Таймаут – по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения задачи сервиса геообработки, по окончании которого выполнение геотриггера будет остановлено.

Рисунок 499 - Пример настройки геотриггера Вызов задачи геообработки

Вызов .NET метода

Геотриггер Вызов .NET метода позволяет выполнить вызов .NET метода с использованием функциональных возможностей .NET собственной библиотеки в dll-файле, и применить метод в процессе создания/обновления объекта.

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

Чтобы добавить геотриггер, нажмите кнопку Добавить геотриггер , выберите Вызов .NET метода , выделенный ниже, см. Рисунок 500 и добавьте необходимые настройки, см. Рисунок 501 .

Рисунок 500 - Добавление геотриггера Вызов .NET метода

Рисунок 501 - Настройки геотриггера Вызов .NET метода

Определите:

  1. При необходимости задайте название добавленному геотриггеру в опции Название .
  2. В опции Сервис укажите название картографического сервиса, к которому установлено подключение в Конструкторе для интерактивной карты, и функциональность которого будет расширять геотриггер.
  3. Будет ли при выполнении операций плагина редактирования выполняться геотриггер. По умолчанию – будет. Выберите, при выполнении каких операций – создание, обновление объекта.
  4. Для какой группы пользователей будет выполняться геотриггер. В выпадающем списке Для пользователей выберите нужную группу.
  5. Для какого слоя картографического сервиса будет выполняться геотриггер. Для этого в поле Слои нажмите  и укажите номера слоев.
    1. Задайте проверку ограничений, заданных для редактирования объектов: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам , подробнее см. п. 8.4.3 . В результате геотриггер будет запущен только при соблюдении заданных условий, а также если у объекта будут изменены атрибутивные поля, указанные в условии Срабатывать, если изменены поля.

    Пункт 1. если включена опция Условие на исходное состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «до обновления» или до сохранения объекта в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 502 :

    1.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

    Рисунок 502 – Настройка ограничения Условие на исходное состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам

    Пункт 2. если включена опция Условие на изменяемое состояние объекта и заданы соответствующие настройки, это означает, что объект находится в состоянии «после обновления» или после выполнения изменений в базе данных, однако до завершения транзакции в базе данных. Задайте следующие настройки, пример ниже, см. Рисунок 503 :

    2.1. Определите объекты, при редактировании которых будет выполняться геотриггер. Задайте Определяющий запрос на SQL и геотриггер будет выполняться при редактировании объекта слоя, значение которого удовлетворяет запросу. Для этого нажмите .

    Выражение запроса строится в следующем виде:

    <Название атрибутивного поля> <Оператор сравнения> <‘Имя значения в атрибутивном поле’>

    или

    <Название атрибутивного поля> <Оператор сравнения> <Численное представление значения в атрибутивном поле>

    Например:

    Status = ‘Выполнен’

    Length > 20.

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

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

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

    Рисунок 503 - Настройка ограничения Условие на изменяемое состояние объекта к опциям: Определяющий запрос, Ограничение по экстенту, Ограничение по объектам и Срабатывать, если изменены поля

  6. Время запуска - укажите время запуска выполнения вызова .NET метода для автоматического срабатывания геотриггера при создании/обновлении объектов, по умолчанию задано После обновления , пример ниже, см. Рисунок 504 .

    Измените значение по умолчанию, если необходимо. Для параметра Время запуска доступны также следующие варианты:

    • До обновления – запуск геотриггера до сохранения объекта в базу данных;
    • После обновления - запуск геотриггера после выполнения изменений в базе данных, но до того, как изменения станут доступны другим пользователям;
    • После транзакции - запуск геотриггера после окончательного сохранения в базе данных, когда изменения станут доступны другим пользователям.
  7. Заполните следующие параметры, используемые при программировании:
    • Путь до dll-файла .NET библиотеки;
    • Полное имя класса, включая namespaсe;
    • Имя статистического метода ;
    • Аргументы метода .
  8. Поле для записи – нажмите , в Имя поля укажите название атрибутивного поля и Значение для возможности создать или обновить текущий объект по указанным выходным значениям от .NET метода с использованием функциональных возможностей .NET библиотеки.
  9. Таймаут – по умолчанию указано 0 секунд . Укажите предельное время ожидания выполнения вызова .NET метода, по окончании которого выполнение геотриггера будет остановлено.

Рисунок 504 - Пример настройки геотриггера Вызов .NET метода