Вопросы геотрассировки и геоформы позволяют собирать на карте линейные или полигональные объекты. Эту геометрию можно использовать для итогового объекта в вашем векторном слое вместо точки.
В отличие от вопросов геоточки или сбора локации без вопроса о локации, вопросы геотрассировки и геоформы не используют сведения устройства о местоположении для добавления этих сведений в ответ, вместо этого они используют сведения о местоположении вашего устройства для центрирования карты.
Если вопрос типа геотрассировка или геоформа оставлен без ответа, и его геометрия не создана по умолчанию или из выражения, то запись опроса будет отправлена в векторный слой с нулевой геометрией.
Примечание:
Вы можете добавить к опросу несколько вопросов типа геоточка, геотрассировка или геоформа, однако только один из них может использоваться в качестве геометрии записи опроса. Можно использовать несколько вопросов карты, если для всех вопросов, кроме одного, для bind::esri:fieldType задано null.
Каждый повтор в опросе также может содержать более одного вопроса типа геоточка, геотрассировка или геоформа, однако только один из них может использоваться в качестве геометрии повторяющейся записи. С помощью описанного выше метода можно использовать несколько вопросов типа Карта.
При записи вопросов типа Геотрассировка или Геоформа с помощью карты не все объекты полевого приложения Survey123 поддерживаются в веб-приложении. Следующие функции поддерживаются полевым приложением Survey123, но не поддерживаются веб-приложением:
- Автономные базовые карты
- Опции стиля для вопросов типа Геотрассировка и Геоформа
- Вычисления для вопросов типа геотрассировка и геоформа, включая функцию sum()
- Пороговые значения и выражения точности определения местоположения
Методы сбора
Для данных геотрассировки и геоформы есть два метода сбора: Скетч и Вершина. Скетч используется по умолчанию для опросов, созданных с нуля, а Вершина используется по умолчанию для опросов, созданных на основе существующего векторного слоя. Вы можете настроить другие методы сбора для опроса, указав method=sketch или method=vertex в столбце body::esri:style для вашего вопроса.
Скетч
Метод Скетч используется для сбора геометрии в ходе одного действия, сбор будет завершен, как только пользователь прекратит рисовать линию.
Для получения дополнительной информации о том, как использовать этот метод, см. Скетч.
Вершина
Метод Вершины позволяет выполнить более точный сбор геометрии линии или формы, поскольку предполагает последовательный сбор соединенных вершин.
Для получения дополнительной информации о том, как использовать этот метод, см. Вершина.
Имеются следующие параметры управления поведением при добавлении вершин:
- beep или nobeep - если задано beep, звуковой сигнал будет раздаваться каждый раз при захвате вершины. Если этот параметр не включен, значением по умолчанию будет nobeep.
- haptic или nohaptic - если задано haptic, каждый захват вершины будет сопровождаться тактильным откликом. Поддерживается только устройствами с возможностью тактильного отклика. Если этот параметр не включен, значением по умолчанию будет nohaptic.
- edit или noedit - если задано noedit, пользователи смогут только создавать вершины в своем текущем местоположении, отменять размещение каждой вершины и заменять всю линию или полигон. Отдельную вершину пользователи редактировать не могут. Если этот параметр не включен, значением по умолчанию будет edit.
- streaming или nostreaming - Вершины линии или полигона могут создаваться при перемещении в потоковом режиме. Если этот параметр не включен, значением по умолчанию будет nostreaming.
В следующем примере в качестве метода создания используется потоковой режим генерирования вершин со звуковой обратной связью:
method=vertex,streaming,beep
Автор опроса может настроить расстояние между соседними потоковыми вершинами. По умолчанию вершины захватываются каждые 10 метров, но это значение можно изменить с помощью параметра distanceThreshold. Этот параметр разделяется пробелом в столбце body::esri:style. Могут использоваться и другие параметры, задающие цвет линии или формы.
В следующем примере вершины будут захватываться каждые 25 метров, формируя красную линию:
method=vertex,streaming,beep distanceThreshold=25 lineColor=red
Если для вас важна точность определения местоположения создаваемых вершин, задание порогового значения точности в столбце body::accuracyThreshold вопроса типа Геотрассировка или Геоформа предотвратит захват вершин, если не будет выполнено пороговое условие.
Настройки по умолчанию и выражения
Вы можете задать геометрию по умолчанию для вопроса геотрассировки или геоформы, либо использовать выражение для создания геометрии с использованием результатов других вопросов. Отдельные вершины, создающие ответ на вопрос геотрассировки или геоформы, представляют собой разделенные пробелами пары значений широты и долготы (в десятичных градусах), которые разделены между собой точками с запятыми. Чтобы ввести ответ на вопрос геотрассировки или геоформы, необходимо соблюдать данную структуру. Для получения более точных местоположений эти значения могут быть довольно большими. Например, следующие значения были указаны в столбце по умолчанию для вопроса геоформы и при этом была отрисована геометрия вокруг парка в Мельбурне, Австралия:
-37.842156723211474 144.95942945338243; -37.83554486071995 144.9726235713864; -37.85681405373047 144.98240735651922; -37.85954045531896 144.97715349053766
Подсказка:
Значения местоположения по умолчанию в южном полушарии приводят к ошибке Microsoft Excel, поскольку значение читается как формула из-за знака минус (-) в его начале. В таких случаях перед первым значением необходимо ввести апостроф, тогда Excel прочитает это значение так, как требуется. Добавление апострофа не вызывает каких-либо изменений в поведении Survey123.
Поскольку этого нельзя сделать напрямую, заполняя ответы из select_one questions, рекомендуется использовать функцию substr() в столбце calculation, которая поможет создать допустимый ответ. Например, имя ответа в вопросах select_one может быть таким:
+059.38330_+018.66300
В этом ответе используется фиксированное число знаков как для широты, так и для долготы, с заполнением нулями, которые обычно сокращаются, и с подчеркиванием между двумя значениями, поскольку пробелы в столбце name не допускаются. Получаемое значение можно разобрать с помощью функции substr(), чтобы ввести в вопрос геотрассировки ответ в виде двух вершин:
substr(${previous_question1}, 0, 10) + " " + substr(${previous_question1}, -10) + "; " + substr(${previous_question2}, 0, 10) + " " + substr(${previous_question2}, -10)
В этом примере используются первые 10 символов двух разных значений (широты) и последние 10 символов (долготы) с пробелами, разделяющими широты и долготы, и точкой с запятой, разделяющей отдельные местоположения, для получения правильного результата геотрассировки.
Вы также можете использовать функцию sum() агрегации для сопоставления нескольких значений геоточек в повторе, которые будут использоваться в качестве вершин для итоговой геотрассировки или геоформы. Это позволит пользователям собирать метаданные о локация для каждой вершины геометрии. Более подробно см. Функции агрегации.
Хотя местоположение не фиксируется сразу в вопросе типа геотрассировка или геоформа, местоположение устройства используется для центрирования карты при загрузке опроса. Чтобы предотвратить это, установите значение по умолчанию как null. Тогда вместо этого будут предлагаться опции по включению захвата местоположения, загрузки страницы карты для указания местоположения вручную или обновления вычисления, если оно применяется к вопросу.
Геопоиск
Вопросы типа Геоточка и Геоформа включают возможности геопоиска, которые позволят пользователю найти адрес или точку интереса, приблизить к ней карту и разместить в этом месте вершину.
По умолчанию функциональность геопоиска возвращает результаты, которые могут быть расположены по всему миру, при этом для поиска адресов используется Сервис ArcGIS Geocoding.
Примечание:
Операция геокодирования с помощью Сервис ArcGIS Geocoding будет потреблять кредиты. Более подробную информацию см. в разделе Понятие кредитов.Чтобы задать определенный локатор, из которого надо получить результаты, введите ID элемента локатора в столбец bind::esri:parameters, например, geocode=36ff9e8c13e042a58cfce4ad87f55d19. Локатор, используемый в опросе ArcGIS Online, должен быть элементом в ArcGIS Online. Локатор, используемый в опросе ArcGIS Enterprise, должен быть элементом того же портала, что и опрос.
Атрибуты геометрии
Вопросы типа Геотрассировка и Геоформа также можно использовать в вычислениях для отображения и записи атрибутов геометрии, таких как длина (геотрассировка) или периметр и площадь (геоформа). Функции distance() и area() используются для построения выражения в вопросе геотрассировки или геоформы. Функция distance() возвращает результат в метрах, а функция area() - в квадратных метрах. См. пример геотрассировки и геоформы в Survey123 Connect, чтобы узнать о вариантах вычислений, конвертирующих эти результаты в другие единицы измерения.
Символы геометрии
Вы можете добавить в вопросы геотрассировки и геоформы стиль, который будет отображаться в опросе. Стиль можно настроить с помощью следующих параметров в столбце body::esri:style для вопросов типа Геотрассировка и Геоформа:
- lineColor
- lineWidth
- fillColor
Цвета могут быть заданы стандартными названиями цветов HTML или шестнадцатеричными цветовыми кодами. Для задания непрозрачности можете использовать восьмизначный шестнадцатеричный код цвета. При указании нескольких значений они разделяются пробелом, например, lineColor=Black fillColor=#800000FF lineWidth=3.
Примечание:
Параметры lineColor и lineWidth поддерживаются в обоих типах вопросов. Параметр fillColor поддерживается только для геоформы.
Эти опции стилей отображаются только в Survey123 Connect и полевом приложении Survey123.
Местоположения точек из первого в повторе вопроса геоточка можно показать на любой карте в опросе. Более подробно см. Точечные наложения на картах.
Стиль вопроса
Вы можете настроить базовую карту, инструменты карты и высоту вопроса для вопросов карты.
Новую базовую карту по умолчанию можно указать для отдельных вопросов карт, указав один раз с помощью параметра map в столбце body::esri:style. Например, map="World Topography" укажет, что картографический вопрос должен использовать базовую карту World Topography. Вы также можете задать параметр map с ID элемента карты, например, map=de26a3cf4cc9451298ea173c4b324736. Этот параметр поддерживает онлайн карты и автономную работу с картами, включая ваши собственные веб-карты. Более подробную информацию см. в разделе Добавление карты в опрос.
Столбец body::esri:style принимает значение параметра mapTools для управления инструментами карты, которые доступны для вопросов карты. Если параметр инструментов карты задан, все инструменты будут отображаться. Принимаются следующие значения:
- mapTools=search
- mapTools=mapSwitcher
- mapTools=zoom
- mapTools=home
- mapTools=locate
Можно задать несколько инструментов, разделенных запятыми, например, mapTools=search,locate.
Столбец body::esri:style принимает значение параметра height для вопросов карт.
Высоту вопроса можно задать, сопроводив параметр height числом и, дополнительно, единицами измерения. Единицами измерения по умолчанию являются lines, при этом они ссылаются на высоту текущего входного шрифта. Например, height=5 будет вызывать отображение любого из этих вопросов высотой в пять строк.
В качестве альтернативы вы можете задать единицу измерения в процентах от высоты экрана или по количеству пикселов, добавив их в качестве суффикса к значению без пробела. Например, любое из значений, перечисленных ниже, будет принято:
- height=5
- height=5lines
- height=25%
- height=250pixels
Инструменты высоты и карты могут быть заданы с пробелами между ними, например, height=25% mapTools=search,zoom.