По умолчанию при публикации опроса в ArcGIS Survey123 Connect с помощью схемы из опроса создается векторный слой. Либо вы можете выбрать добавление опроса к существующему векторному слою.
Подготовка векторного слоя
Чтобы использовать векторный слой с Survey123, он должен быть элементом в ArcGIS Enterprise или ArcGIS Online. Сюда входят размещенные векторные слои и векторные слои, опубликованные на интегрированных и не интегрированных серверах.
Примечание:
Для работы с не интегрированными сервисами объектов, требуется дополнительная настройка, поскольку вам необходимо вручную создать в организации ArcGIS элемент векторного слоя, который будет представлять сервис. Дополнительные сведения см. в статье базы знаний по подключению к не интегрированным сервисам ArcGIS Server.
Владелец и пользователи опроса должны иметь доступ к векторному слою, и он должен быть редактируемым. Также имейте в виду:
- Если пользователи проходят новые опросы, обязательно должна быть функциональность Create.
- Если пользователи изменяют существующие опросы, для векторного слоя должна быть включена возможность Update.
- Если пользователи добавляют изображения, аудио или файлы, то hasAttachments должен быть задан как true.
При включении вложений в векторном слое столбцы KEYWORD и EXIFINFO не добавляются в схему по умолчанию. Этот столбец необходим для того, чтобы можно было связать вложения с правильной записью. После включения вложений запустите Инструмент геообработки Обновить вложения, чтобы включить ключевые слова.
Примечание:
Перед сбором записей в Survey123 рекомендуется добавить столбцы KEYWORD и EXIFINFO, чтобы все отправляемые вложения содержали ключевые слова. Если столбцы KEYWORD и EXIFINFO не существуют до отправки вложений, для обновления вложений можно использовать блокнот Python Обновление ключевых слов вложений.Повторы не могут ссылаться на связанные слои или таблицы, кроме случаев, когда для этого отношения дочерний слой или таблица используют поле GUID.
Если вы собираетесь редактировать свои опросы, векторный слой должен поддерживать пустые значения или в опросе должны быть требуемые поля. Survey123 при редактировании использует пустые значения в случае удаления ответа без его последующего изменения. Соответственно, Survey123 не сохранит опрос из векторного слоя, который не поддерживает пустые значения.
Следующие дополнительные возможности, должны быть заданы как true для векторного слоя:
- supportsAttachmentsByUploadId – эта возможность автоматически включена, если для векторного слоя разрешены вложения. Она позволяет приложению загружать все вложения, связанные с опросом, до того, как опрос будет отправлен. Если вложения загрузить не удается, то будет откачена назад отправка всего опроса в целом, чтобы предотвратить потерю данных.
- supportsApplyEditsWithGlobalIds – векторный слой должен поддерживать применение изменений с глобальными идентификаторами. Это позволяет приложению создавать и управлять глобальными ID в созданных объектах (в отличие от сервера, который создает новые глобальные ID для создаваемых объектов).
Чтобы векторный слой поддерживал сохранение изменений с глобальными идентификаторами, должны выполняться следующие требования:
- Слои в векторном слое должны иметь столбец GlobalId с уникальным индексом. Самый лучший способ сделать это – разрешить синхронизацию при публикации векторного слоя.
- При использовании многопользовательской базы геоданных слои могут использовать сервис-ориентированную версию, но не традиционную версию. При использовании сервис-ориентированной версии базы геоданных Survey123 будет ориентироваться на версию по умолчанию. Более подробно см. в разделе Типы версий.
- Глобальные ID должны быть в векторном слое или таблице до того, как в нем будут включены вложения.
- Если векторный слой содержит слои с m-значениями, должно быть разрешено редактирование без m-значений.
Подробнее о поддержке векторным слоем редактирования см. раздел supportsApplyEditsWithGlobalIds Слой (сервис объектов) документации ArcGIS REST API.
Примечание:
Survey123 поддерживает для GUID только отношения один-ко-многим при работе с существующими векторными слоями и связанными таблицами. Отношения один-к-одному не поддерживаются.
Создание опроса из векторного слоя
В Survey123 Connect вы можете создать новый опрос на основе имеющегося векторного слоя. Векторный слой должен быть подготовлен для использования с Survey123. Войдите в организацию ArcGIS и щелкните Новый опрос. Выберите категорию Сервисы объектов. Найдите и выберите векторный слой, а затем щелкните Создать опрос. Из вашего векторного слоя создается форма XLSForm. После этого вы можете сразу опубликовать этот опрос или продолжить его дальнейшую настройку. Например, вы можете добавить более содержательные надписи для вопросов или сгруппировать их по разделам.
Если у векторного слоя, который вы выбрали, больше одного слоя, опрос генерируется на основе первого слоя. Для получения опроса на основании другого слоя необходимо создать его вручную и изменить свойства form_id и submission_url на вкладке Настройки вашей электронной таблицы. Дополнительные сведения см. в разделе Создание опроса, который соответствует векторному слою.
Если выбранный вами векторный слой имеет вложения, в опросе будет создан вопрос с одним изображением с именем <layer_name>_image. Это имя не будет соответствовать ключевому слову в таблице вложений и должно быть обновлено. Если существующие вложения представляют более одного вопроса, вы должны добавить вопросы с изображениями в опрос, чтобы они соответствовали каждому ключевому слову в таблице вложений.
Примечание:
Если для создаваемого опроса необходимы вопросы с аудио или файлами, их необходимо добавить к опросу вручную. После создания опроса откройте электронную таблицу и добавьте вопросы. Подробности см. в разделе Вопросы типа Медиа. В векторном слое также должны быть включены вложения.
Создание опроса, который соответствует векторному слою
Можно создать вручную новый опрос, который подходит существующему векторному слою, но вам также потребуется обновить свойства form_id и submission_url на вкладке Настройки листа электронной таблицы для задания связи между опросом и существующим векторным слоем вашего портала или ArcGIS Online.
Свойство form_id явно определяет имя слоя, который используется для опроса, в векторном слое. Подробности см. в статье базы знаний о том, как создать опрос, совпадающий с сервисом объектов.
Свойство submission_url - это URL-адрес элемента векторного слоя.
Подсказка:
Вам потребуется предоставить URL элемента векторного слоя, как показано выше. Общая ошибка заключается в том, что вместо URL элемента используется URL векторного слоя, который не поддерживается.
Чтобы создать этот URL-адрес, вы должны соединить ID элемента с Главным ресурсом портала Пример на изображении выше показывает ссылку на элемент ArcGIS Online; ссылка на тот же элемент на портале выглядит следующим образом:https://<host>:<port>/arcgis/sharing/rest/content/items/21a6c530b31a4523bdff7gg94c9c5d9a
Если вам нужен опрос, который требует некоторых, но не всех полей существующего векторного слоя, рекомендуется создать опрос из векторного слоя (как описано в разделе выше) а затем удалить все вопросы, которые не нужны перед публикацией опроса. Таким образом, свойства form_id и submission_url создаются автоматически.
Изменение схемы
После создания опроса из существующего векторного слоя новые вопросы и список выбора значений можно добавлять в опрос только после добавления соответствующего поля или домена в векторный слой. Когда опрос создается из представления векторного слоя, новые вопросы и список выбора значений могут быть добавлены в опрос только после того, как соответствующее поле или домен будут добавлены в базовый векторный слой и распространены на представление векторного слоя.