Подготовка к сбору данных с помощью дальномера

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

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

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

Сначала необходимо решить, какие измерения записывать.

Как минимум, необходимо создать текстовый вопрос с оформлением rangefinder для хранения значений, которые получены от дальномера. Этот вопрос может быть текстовым, если вы записываете несколько измерений дальномера (будет храниться весь объект JSON) или целочисленный или десятичный вопрос, если вы записываете одно измерения (будет храниться одно числовое значение).

Тип измерений задаются в столбце bind::esri:parameters с помощью measurement=, далее список параметров, разделенный запятыми, например measurement=height,azimuth,horizontalDistance,slopeDistance,inclination.

Процесс записи нескольких измерений высоты можно также провести на вертикальной структуре с помощью параметра multipleHeigh со списком подписей высот, разделенных запятыми. Заключит список параметров в кавычки, если какая-либо из подписей высота содержит пробелы, например, measurement="multipleHeight,Height 1,Height 2,Height 3". Процесс записи нескольких измерений высот нельзя объединить с другими значениями измерений; их можно использовать только отдельно.

Дополнительные текстовые вопросы в опросе могут хранить отдельные измерения. Используйте функцию pulldata, чтобы взять свойства из объекта JSON, который возвращается дальномером. Например, следующее выражение вернет только значение заголовка (азимут): pulldata("@json",${tree},"azimuth").

Далее приведен пример объекта JSON, возвращаемого дальномером. Любое из этих свойств можно извлечь и сохранить в вопросе с помощью выражения pulldata, похожее на выражение выше:

{
    "referenceCoordinates": {
       "latitude":-37.8479578,
       "longitude":144.9792849
    },
    "targetCoordinates": {
       "latitude":-37.847956857525,
       "longitude":144.979303248161
    },
    "height":0.6,
    "heightUnits":"m"
    "horizontalDistance":2.1,
    "horizontalDistanceUnits":"m",
    "slopeDistance":2.1,
    "slopeDistanceUnits":"m",
    "azimuth":50.1,
    "azimuthUnits":deg",
    "inclination":-4.4,
    "inclinationUnits":"deg",
    "heightArray":[0.6,0.9,1.1,1.4,2]
}

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

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

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

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

Чтобы настроить опрос, который отобразится в списке опросов листа дальномера, добавьте одно из следующих значений в столбец bind::esri:workflow:

  • rangefinderMode=height
  • rangefinderMode=offset
  • rangefinderMode=height,offset
  • rangefinderHeight

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

Рабочий процесс измерений нескольких высот можно также настроить, включив текстовый вопрос с rangefinderMode=height вместе с дополнительными десятичными вопросами для хранения каждого значения высоты. Задайте каждому десятичному вопросу значение rangefinderHeight в столбце bind::esri:workflow XLSForm.

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