Beispiele für Berichtsausdrücke für Kartenfragen finden Sie weiter unten.
Alle Fragen, die eine Karte verwenden, wie zum Beispiel der Typen "geopoint", "geotrace" und "geoshape", verwenden gemeinsame Methoden und Parameter, mit deren Hilfe Sie ihre Darstellung in Berichten festlegen können.
Für eine Karte in einem Bericht wird standardmäßig die Webkarte verwendet, die für die Frage festgelegt wurde. Wenn der Kartenmaßstab auf 0 festgelegt ist oder der Parameter nicht angegeben wird, wird der Kartenmaßstab wie folgt durch die Features in der Karte bestimmt:
- Wenn die Karte nur ein Punkt-Feature enthält, entspricht der Kartenmaßstab dem Maßstab, der für die Frage festgelegt wurde.
- Wenn die Karte nur ein Linien- oder Polygon-Feature enthält, wird der Kartenmaßstab durch die Ausdehnung des Features bestimmt.
- Wenn die Karte mehrere Features enthält, wird der Maßstab durch die Ausdehnung aller Features bestimmt.
In Kartenfragen ist es auch möglich, die Element-ID und den Kartenmaßstab einer Webkarte als optionale Parameter festzulegen. Im folgenden Beispiel wird ein Kartenmaßstab von 1:100.000 verwendet:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
Für alle Kartenfragen können Sie die Methode rotate verwenden, um die Drehung im Uhrzeigersinn genau nach Norden in Bezug auf die Sicht zu definieren. Zulässig sind Werte zwischen 0 und 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Wenn Sie die Webkarten-Element-ID als leere Zeichenfolge angeben, wird die Standardgrundkarte für die Frage verwendet. Wenn Sie den Maßstab auf 0 festlegen oder diesen Parameter nicht angeben, wird in der Karte die für die Frage festgelegte Standardausdehnung verwendet.
Mit der Methode mapExtent kann die Ausdehnung einer Karte in einem Bericht explizit festgelegt werden. Im folgenden Beispiel wird eine feste Kartenausdehnung für Tokio, Japan, angezeigt:
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
Kartenfragen unterstützen auch den für Bildfragen verfügbaren Größenausdruck. Damit können Sie die Auflösung der im Bericht angezeigten Karte wie im folgenden Beispiel gezeigt steuern:
${location | size:400:400}
Sie können die Ausdrücke map, mapScale und size zusammen verwenden, um eine Webkarten-ID und einen Kartenmaßstab sowie eine Kartenbildauflösung bereitzustellen, wie im folgenden Beispiel gezeigt:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Hinweis:
Wenn Sie die Größe einer Karte in Verbindung mit einem beliebigen anderen Ausdrucksmethode festlegen, muss size an letzter Stelle im Ausdruck stehen.
Wenn die Karte eine große Anzahl an Datensätzen umfasst, können Sie die angezeigten Datensätze mithilfe der Methode mapFilters einschränken. Im folgenden Beispiel wird mit dem Parameter where eine Webkarte gefiltert, die nur einen Layer enthält, um Datensätze mit einem "POP2000"-Wert größer 999999 anzuzeigen:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
Im folgenden Beispiel für mapFilters filtert der erste Parameter den Städte-Layer (mit der Layer-ID 18ece64a1fc-layer-5), sodass nur die ersten drei Datensätze mit der höchsten Bevölkerungszahl im Bundesstaat Kalifornien angezeigt werden. Der zweite Parameter, der durch einen Doppelpunkt vom ersten Parameter getrennt ist, filtert den Bundesstaaten-Layer (mit der Layer-ID 18ece64a1fc-layer-6), sodass nur der Bundesstaat Kalifornien angezeigt wird:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Hinweis:
Die Layer-ID ist eine Eigenschaft des Feature-Layer-Objekts im JSON-Code einer Webkarte.
Standardmäßig wird eine Kartenfrage ungeachtet der im Feature-Layer festgelegten Symbolisierung mit einem Standardkartenmarkersymbol angezeigt. Sie können die Methode drawingInfo verwenden, um die Darstellungsinformationen, wie z. B. Symbol, Beschriftung und Transparenz, die in einem bestimmten Feature-Layer gespeichert sind, zu extrahieren. Diese Informationen können Sie im aktuellen Layer oder in einem bestimmten Feature-Layer über eine URL angeben.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Wenn der Survey keine Kartenfrage enthält oder Sie Berichte für Feature-Layer ohne verknüpften Survey erstellen, kann die Geometrie eines Datensatzes dennoch mit dem Platzhalter ${$shape} zurückgegeben werden.
In einem Zusammenfassungsabschnitt werden mit einem Ausdruck für eine Kartenfrage mehrere Geometrien in der Eingabe für eine Frage angezeigt. Wenn in einen einzelnen Bericht weitere Antworten eingebunden werden sollen, geben Sie einen where-Ausdruck mit dem !important-Tag an. Weitere Informationen finden Sie unter Zusätzliche Syntax. Mit dem folgenden Ausdruck werden alle Geometrien im Layer angezeigt, bei denen der Wert des Statusfeldes auf "broken" festgelegt ist:
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Hinweis:
Im Beispiel oben wird der Kartenmaßstab nicht angegeben. Wenn Sie den Maßstab auf 0 festlegen oder diesen Parameter nicht angeben und die Karte mehrere Datensätze enthält, wird in der Karte die kombinierte Ausdehnung für alle Datensätze verwendet.
Sie können festlegen, dass der where-Ausdruck immer "true" ist, um sicherzustellen, dass alle Geometrien im Layer angezeigt werden:
${location | where:"1=1 !important"}
Damit können auch alle Punkte in einer Wiederholung angezeigt werden:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
Mit dem Schlüsselwort $shape können auch mehrere Kartengeometrien zurückgegeben werden:
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
Mit dem Schlüsselwort $map kann eine Karte, die keine Survey-Frage referenziert, gedruckt werden:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Geopunkt
Für Geopunkt-Fragen können Sie Ausdrücke zum Anzeigen der Breiten- und Längengradwerte aus der Frage wie folgt verwenden:
${location | getValue:"x"}
${location | getValue:"y"}
Sie können nicht beide Werte mit einem Ausdruck anzeigen. Falls beide Werte erforderlich sind, müssen Sie beide Ausdrücke verwenden.
Tipp:
Den Höhenwert können Sie ebenfalls über einen ähnlichen Ausdruck anzeigen. Dies gilt jedoch nur, wenn der zugrunde liegende Feature-Layer Z-Werte unterstützt:
${location | getValue:"z"}
Standardmäßig werden Breitengrad-, Längengrad- und Höhenwerte als der ursprüngliche Wert, der im Survey angegeben wurde, ohne Kürzung zurückgegeben. Da diese häufig viel länger als in einem Bericht benötigt sein können, sollten Sie den Ausdruck round oder den Ausdruck toFixed verwenden, um den Wert auf eine bestimmte Dezimalstelle zu runden:
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
Standardmäßig werden diese Werte im Raumbezug ausgegeben, der auch vom Feature-Layer des Survey verwendet wird. Sie können einen anderen Raumbezug als zusätzlichen Parameter festlegen, indem Sie die entsprechende WKID angeben:
${location | getValue:"x":4326}
Geotrace und Geoshape
Bei Fragen des Typs "Geotrace" und "Geoshape" können Sie den Ausdruck getValue verwenden, um die Länge der Zeile oder den Umfang des Polygons anzuzeigen:
${polyline1 | getValue:"length":"meters":"planar"}
Bei Fragen des Typs "Geoshape" können Sie auch den Ausdruck getValue verwenden, um die Fläche des Polygons anzuzeigen:
${polygon1 | getValue:"area":"hectares":"geodesic"}
Die Einheiten und Berechnungsmethode sind optionale Parameter. Für die Länge werden die folgenden Einheiten akzeptiert:
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
Für die Fläche werden die folgenden Einheiten akzeptiert:
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Alternativ können Sie eine beliebige, von ArcGIS REST API unterstützte esriSRUnitType-Konstante oder esriSRUnit2Type-Konstante verwenden. Verwenden Sie den numerischen Code für die Konstante ohne Anführungszeichen im Ausdruck:
${polyline1 | getValue:"length":109002:"geodesic"}
Wenn keine Einheiten angegeben sind, lautet die Standardeinstellung für die Länge kilometers und für die Fläche square-kilometers.
Als Methode kann geodesic oder planar angegeben werden. Wenn keine Methode angegeben ist, wird standardmäßig geodesic verwendet.