Poniżej dostępne są wyrażenia raportów na potrzeby pytań typu map (mapa).
Wszystkie pytania wykorzystujące mapę, w tym typu geopoint (punkt geograficzny), geotrace (ślad geograficzny) i geoshape (kształt geograficzny), mają wspólne metody i parametry, za pomocą których można zmienić sposób ich prezentacji w raportach.
Domyślnie mapa w raporcie korzysta z mapy internetowej, która została skonfigurowana dla pytania. Jeśli skala mapy jest skonfigurowana na wartość 0 lub parametr ten został pominięty, wówczas skala mapy jest określana za pomocą obiektów na mapie w następujący sposób:
- Jeśli na mapie jest tylko jeden obiekt punktowy, skala mapy jest dopasowana do skali skonfigurowanej dla pytania.
- Jeśli na mapie jest tylko jeden obiekt liniowy lub poligonowy, skala mapy jest określana przez zasięg obiektu.
- Jeśli na mapie jest wiele obiektów, skala jest określana przez zasięg wszystkich obiektów.
Pytania typu map (mapa) obsługują konfigurowanie identyfikatora elementu mapy internetowej i skali mapy jako parametrów opcjonalnych. W poniższym przykładzie użyto skali mapy 1:100 000:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
W przypadku wszystkich pytań typu map (mapa) można używać metody rotate do definiowania obrotu zgodnie z ruchem wskazówek zegara wskazania północy względem widoku. Przyjmowane są wartości od 0 do 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Jeśli identyfikator elementu mapy jest pustym ciągiem znakowym, używana jest domyślna mapa bazowa pytania. Jeśli skala mapy zostanie skonfigurowana na 0 lub parametr ten zostanie pominięty, wówczas na mapie używany jest domyślny zasięg skonfigurowany dla pytania.
Za pomocą metody mapExtent można jawnie skonfigurować zasięg mapy w raporcie. W poniższym przykładzie jest wyświetlony ustalony zasięg mapy Tokio w Japonii:
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
Pytania typu map (mapa) obsługują też wyrażenia określające rozmiar dostępne dla pytań typu image (obraz). Tego wyrażenia można użyć do sterowania rozdzielczością mapy wyświetlanej w raporcie, jak pokazano w poniższym przykładzie:
${location | size:400:400}
Wyrażeń map, mapScale i size można użyć łącznie, udostępniając informacje o identyfikatorze i skali mapy internetowej, jak również o rozdzielczości obrazu mapy, jak pokazano w następującym przykładzie:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Notatka:
Jeśli rozmiar mapy jest konfigurowany z użyciem dowolnej innej metody wyrażenia, należy umieścić metodę size na końcu wyrażenia.
Jeśli mapa zawiera dużą liczbę rekordów, można użyć metody mapFilters w celu ograniczenia rekordów, które są wyświetlane. W następującym przykładzie parametr where służy do filtrowania mapy internetowej, która ma tylko jedną warstwę, aby wyświetlić rekordy z wartością POP2000 większą niż 999 999:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
W poniższym przykładzie metody mapFilters pierwszy parametr filtruje warstwę miast (o identyfikatorze 18ece64a1fc-layer-5) w celu wyświetlenia tylko pierwszych trzech rekordów o najwyższej populacji w stanie Kalifornia. Drugi parametr (oddzielony od pierwszego średnikiem) filtruje warstwę stanów (o identyfikatorze 18ece64a1fc-layer-6) w celu wyświetlenia tylko stanu Kalifornia:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Notatka:
Identyfikator warstwy jest właściwością obiektu warstwy obiektowej pliku JSON mapy internetowej.
Domyślnie pytanie typu map (mapa) jest wyświetlane z domyślnym symbolem mapy, niezależnie od symbolizacji skonfigurowanej w warstwie obiektowej. Za pomocą metody drawingInfo można wyodrębnić informacje o rysunku zapisane w konkretnej warstwie obiektowej, włącznie z użytymi symbolem, etykietą i przezroczystością, a także można użyć tych informacji. Za pomocą podanego adresu URL można określić te informacje albo z bieżącej warstwy, albo z konkretnej warstwy obiektowej.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Jeśli pytanie typu map (mapa) nie jest częścią ankiety lub gdy tworzone są raporty dla warstw obiektowych bez powiązanej ankiety, nadal można zwrócić geometrię rekordu przy użyciu symbolu zastępczego ${$shape}.
W sekcji podsumowania wyrażenie dla pytania typu map (mapa) wyświetla wiele geometrii w danych wejściowych pytania. Aby uwzględnić inne odpowiedzi w pojedynczym raporcie, należy podać wyrażenie where ze znacznikiem !important. Więcej informacji na ten temat zawiera sekcja Dodatkowa składnia. Następujące wyrażenie powoduje wyświetlenie wszystkich geometrii w warstwie, w których wartość pola statusu jest równa „broken”:
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Notatka:
W powyższym przykładzie skala mapy jest pominięta. Jeśli skala mapy zostanie skonfigurowana na 0 lub parametr ten zostanie pominięty, a mapa zawiera wiele rekordów, wówczas na mapie używany jest połączony zasięg dla wszystkich rekordów.
Można skonfigurować wyrażenie where w taki sposób, aby miało zawsze wartość true, co spowoduje, że wyświetlana będzie każda geometria w warstwie:
${location | where:"1=1 !important"}
Umożliwia to również wyświetlenie wszystkich punktów w powtórzeniu:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
Słowa kluczowego $shape można także używać w celu zwrócenia wielu geometrii mapy:
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
Słowa kluczowego $map można używać do drukowania mapy, która nie odwołuje się do pytania w ankiecie:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Punkt geograficzny
W przypadku pytań typu geopoint (punkt geograficzny) w celu wyświetlenia wartości szerokości i długości geograficznej pochodzących z pytania można użyć wyrażeń, jak podano poniżej:
${location | getValue:"x"}
${location | getValue:"y"}
Nie można wyświetlić obu tych wartości za pomocą jednego wyrażenia, w celu wyświetlenia obu wartości należy użyć dwóch wyrażeń.
Wskazówka:
Za pomocą podobnego wyrażenia można także wyświetlić wartość wysokości, ale tylko wtedy, gdy bazowa warstwa obiektowa obsługuje wartości Z:
${location | getValue:"z"}
Domyślnie wartości szerokości i długości geograficznej oraz wysokości zwracają wartość oryginalną podaną w odpowiedzi na ankietę, bez obcięcia. Z uwagi na to, że te wartości często będą dłuższe niż potrzeba w raporcie, rozważ skorzystanie z wyrażeń round lub toFixed w celu zaokrąglenia wartości do konkretnego miejsca dziesiętnego:
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
Domyślnie te wartości są wyprowadzane w odniesieniu przestrzennym, które jest używane przez warstwę obiektową ankiety. Za pomocą dodatkowego parametru można skonfigurować inne odniesienie przestrzenne, udostępniając jego identyfikator WKID:
${location | getValue:"x":4326}
Geotrace - Ślad geograficzny i geoshape - kształt geograficzny
W przypadku pytań typu geotrace (ślad geograficzny) i geoshape (kształt geograficzny), wyrażenia getValue można użyć odpowiednio do wyświetlania długości linii lub obwodu poligonu:
${polyline1 | getValue:"length":"meters":"planar"}
W przypadku pytań typu geoshape (kształt geograficzny) wyrażenia getValue można użyć także do wyświetlania pola powierzchni poligonu:
${polygon1 | getValue:"area":"hectares":"geodesic"}
Jednostki i metoda obliczania są parametrami opcjonalnymi. Akceptowane są następujące jednostki długości:
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
Akceptowane są następujące jednostki pola powierzchni:
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Można również użyć dowolnej stałej esriSRUnitType lub stałej esriSRUnit2Type obsługiwanej przez interfejs ArcGIS REST API. W wyrażeniu należy użyć kodu liczbowego stałej bez cudzysłowu:
${polyline1 | getValue:"length":109002:"geodesic"}
Jeśli nie zostaną podane żadne jednostki, domyślną jednostką długości jest kilometers, a jednostką pola powierzchni — .square-kilometers
Metodą może być geodesic lub planar. Jeśli nie zostanie wskazana żadna metoda, domyślnie jest stosowana metoda geodesic.