Wyrażenia obrazów i wyrażenia z innymi załącznikami

Poniżej przedstawiono przykłady wyrażeń raportów na potrzeby pytań typu image (obraz) i pytań z załącznikami.

W przypadku pytań typu image (obraz) można tak skonfigurować rozmiary, by raporty zawierały obrazy o tej samej wielkości. Format tych wyrażeń jest następujący:

${image1 | size:width:height:max_width:max_height}

Wartości szerokości i wysokości określają skonfigurowany rozmiar obrazu wyrażony w pikselach. Wymagane jest określenie tych wartości w wyrażeniu; podanie wartości 0 oznacza brak ograniczenia na dany wymiar obrazu. Poniższe przykładowe wyrażenie powoduje ustawienie szerokości obrazu na 300 pikseli przy zachowaniu współczynnika proporcji obrazu:

${image1 | size:300:0}

Maksymalne wartości wysokości i szerokości ograniczają maksymalny rozmiar obrazu i są one wartościami domyślnymi. W poniższym przykładzie zostaje ustawiona szerokość obrazu wynosząca 300 pikseli, a wysokość obrazu jest ograniczona do wartości nieprzekraczającej 200 pikseli:

${image1 | size:300:0:0:200}

W poniższym przykładzie do zdefiniowania obrotu obrazu zgodnie z ruchem wskazówek zegara używana jest metoda rotate. Przyjmowane są wartości od 0 do 360.

${image1 | size:300:0:0:200 | rotate:90}

W pytaniach typu image (obraz) mogą zostać także wyodrębnione szczegółowe informacje o obrazie, które można następnie wyświetlić w odpowiedzi na ankietę. Ta funkcja może być używana do wyświetlania nazwy pliku i wielkości obrazu, jak podano poniżej:

${image1 | getValue:"name"}

${image1 | getValue:"size"}

${image1 | getValue:"width"}

${image1 | getValue:"height"}

Tej samej metody można także użyć w celu wyświetlenia znajdujących się w obrazie danych EXIF informujących o tym, gdzie i kiedy zostało zrobione zdjęcie, jak podano poniżej:

${image1 | getValue:"x"}

${image1 | getValue:"y"}

${image1 | getValue:"date"}

${image1 | getValue:"time"}

${image1 | getValue:"direction"}

Aby wyświetlić oryginalny obraz z zachowaniem pełnego rozmiaru i jakości, użyj wyrażenia bez żadnej metody lub wyrażenia getValue bez żadnej wartości w następujący sposób:

${image1} lub ${image1 | getValue:""}

W następującym przykładzie wyświetlany jest oryginalny obraz w pełnej jakości, ale w ustalonym rozmiarze przy użyciu wyrażeń getValue i size:

${image1 | getValue:"" | size:300:0}

Notatka:

Jeśli rozmiar obrazu jest konfigurowany z użyciem dowolnego innego parametru wyrażenia, parametr size musi być umieszczony na końcu wyrażenia.

Daty i czas są przechowywane jako ciągi znakowe danych EXIF, więc wartości te nie mogą być formatowane w raporcie przy użyciu wyrażenia format dla pytań związanych z datą i czasem. Jeśli formatowanie tych wartości jest ważne, należy wyodrębnić informacje EXIF w ramach ankiety za pomocą funkcji pulldata("@exif"). Więcej informacji zawiera temat Obrazy.

Powyższych wyrażeń getValue można również używać do wyodrębniania danych z dowolnych prawidłowych właściwości w załącznikach dowolnego typu, w tym wyników pytań typu image (obraz), audio (dźwięk) oraz file (plik). Następujące właściwości można wyodrębniać ze wszystkich załączników:

${file1 | getValue:"name"}

${file1 | getValue:"size"}

${file1 | getValue:"globalId"}

${file1 | getValue:"id"}

${file1 | getValue:"contentType"}

${file1 | getValue:"keywords"}

Aby wyświetlić obraz z Internetu, podaj jego źródłowy adres URL w wyrażeniu src, odnosząc się do słowa kluczowego $image, a nie nazwy pytania:

${$image |
src:"https://upload.wikimedia.org/wikipedia/commons/1/13/Esri_Headquarters%2C_Building_Q.jpg"
| size:400:0}

Aby zwrócić w odpowiedzi wiele obrazów przesłanych do tego samego pytania, należy użyć następujących symboli zastępczych, przy czym każdy z nich należy umieścić w osobnym wierszu:

${#image1}
${$file}
${/}

Słowa kluczowego $attachment można użyć do wykonania iteracji po wszystkich załącznikach bieżącego obiektu:

${#attachment}
${$file}
${/}

Ta metoda jest przydatna do wyświetlania obrazów w oprogramowaniu ArcGIS Enterprise w wersjach wcześniejszych niż 10.8.1 lub do wyświetlania obrazów, które zostały dodane do obiektu poza aplikacją Survey123, gdyż w tych przypadkach załączniki nie mają wartości odpowiadającej właściwości słów kluczowych. W poniższym przykładzie wyświetlane są nazwy plików wszystkich załączników w obiekcie:

${#$attachment}
${$file|getValue:"name"}
${/}

Aby wyświetlić konkretne załączniki, należy dołączyć metodę attachmentsDefExp identyfikującą załącznik:

${#image1 | attachmentsDefExp:"DATA_SIZE > "+1*1024*1024}...${$file}...${/}

${#$attachment | attachmentsDefExp:"Keywords = 'image1'"}...${$file}...${/}

${#$attachment | attachmentsDefExp:"CONTENT_TYPE like '%image%'"}...${$file}...${/}

Notatka:
Metoda attachmentsDefExp działa w taki sam sposób jak właściwość attachmentsDefinitionExpression w zapytaniu o załączniki. Aby sprawdzić, które pola mogą być używane w zapytaniu o załączniki, należy przejrzeć obiekt attachmentProperties w pliku JSON warstwy.