Выражения карт

Ниже приведены примеры выражений отчета для вопросов к картам.

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

По умолчанию карта в отчете будет использовать веб-карту, заданную для вопроса. Если масштаб карты установлен на 0 или параметр опущен, масштаб карты определяется объектами на карте следующим образом:

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

Вопросы типа Карта поддерживают настройку ID элемента веб-карты и масштаба карты в виде дополнительных параметров. В следующем примере используется масштаб карты 1:100000:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}

Для всех вопросов по карте метод rotate может использоваться для поворота по часовой стрелке на север по отношению к виду. Принимает значения от 0 до 360.

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}

Если в качестве ID элемента веб-карты вы оставите пустую строку, для вопроса будет использована базовая карта по умолчанию. Если вы установите масштаб карты равным 0 или опустите этот параметр, карта будет использовать экстент, заданный по умолчанию для вопроса.

Метод mapExtent можно использовать для точного задания экстента карты в отчеты. В следующем примере показан фиксированный экстент Токио, Япония:

${location | mapExtent:139.7:35.6:139.9:35.8:4326}

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

${location | size:400:400}

Выражения map, mapScale и size могут использоваться вместе для задания ID веб-карты и масштаба, а также разрешения изображения карты, как показано в следующем примере:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Примечание:

При настройке размера карты, наряду с использованием любого другого методы, size нужно разместить в конце выражения.

Если карта содержит большое количество записей вы можете использовать метод mapFilters, чтобы ограничить количество отображаемых записей. В следующем примере параметр where используется для фильтрации веб-карты, которая имеет только один слой, для отображения записей с POP2000 больше 999999:

${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}

В следующем примере mapFilters первый параметр фильтрует слой городов (с ID слоя 18ece64a1fc-layer-5), чтобы показать только первые три записи, с наибольшей численностью населения в штате Калифорния. Второй параметр, отделенный от первого параметра двоеточием, фильтрует слой штатов (с ID слоя 18ece64a1fc-layer-6), чтобы отобразить только штат Калифорния:

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}

Примечание:

ID слоя — свойство объекта слой объектов JSON веб-карты.

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

${location | drawingInfo:"currentLayer"}

${location | drawingInfo:"https://.../FeatureServer/0"}

Если в опросе нет вопроса типа карта или если вы создаете отчеты для сервисов объектов без связанных опросов, то геометрию записи по-прежнему можно будет возвращать с помощью заполнителя ${$shape}.

В разделе итоговой информации выражение для вопроса карты отображает несколько геометрий во входных данных для вопроса. Чтобы включить другие ресурсы для отдельного отчета, введите выражение where с тегом !important. Более подробно см. в разделе Дополнительный синтаксис. Следующее выражение отображает всю геометрию в слое, у которой значение в поле статуса равно 'broken':

${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}

Примечание:

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

Вы можете задать, чтобы выражение where всегда было равным true, чтобы отображалась вся геометрия карты:

${location | where:"1=1 !important"}

Это также можно использовать для отображения всех точек в повторе:

${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}

Ключевое слово $shape также можно использовать для возвращения множества геометрий карты:

${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}

Ключевое слово $map можно использовать для печати карты, не ссылающейся на вопрос опроса:

${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}

Геоточка

Для вопросов типа геоточка выражения можно использовать для отображения значений широты и долготы из вопросов:

${location | getValue:"x"}

${location | getValue:"y"}

Одним выражением нельзя отобразить оба значения; если требуются оба значения, следует использовать два выражения.

Подсказка:

Также возможно отобразить значение высоты через простое выражение, но только если базовый векторный слой поддерживает z-значения:

${location | getValue:"z"}

По умолчанию, значения широты, долготы и высоты возвращаются в том же виде, как в ответах, без сокращения. Часто эти значения более длинные, чем необходимо, можно применить выражения round или toFixed для округления десятичных знаков:

${location | getValue:"x" | round:3}

${location | getValue:"x" | toFixed:3}

По умолчанию эти значения являются выходными данными в системе координат, которая использовалась в векторном слое опроса: Вы можете указать другую пространственную привязку, как дополнительный параметр, указав ее WKID:

${location | getValue:"x":4326}

Геотрассировка и геоформа

Для вопросов геотрассировки и геоформы, выражение getValue можно использовать для отображения длины линии или периметра полигона соответственно:

${polyline1 | getValue:"length":"meters":"planar"}

Для вопросов геоформы, выражение getValue также можно использовать для отображения площади полигона:

${polygon1 | getValue:"area":"hectares":"geodesic"}

Единицы измерения и метод вычисления являются дополнительными параметрами. Для единиц измерения длины используются следующие единицы измерения:

  • feet
  • kilometers
  • meters
  • miles
  • nautical-miles
  • yards

Для единиц измерения площади используются следующие единицы измерения:

  • acres
  • hectares
  • square-miles
  • square-kilometers
  • square-meters
  • square-feet
  • square-yards

Или вы можете использовать любые из констант esriSRUnitType или констант esriSRUnit2Type, которые поддерживаются ArcGIS REST API. В выражении используйте числовой код для постоянной в кавычках:

${polyline1 | getValue:"length":109002:"geodesic"}

Если единицы измерения не указаны, то значением для длины по умолчанию будет kilometers, а для площади - square-kilometers.

Методом может быть либо geodesic, либо planar. Если ни один метод не выбран, по умолчанию будет использоваться geodesic.