A continuación se proporcionan ejemplos de expresiones de informe para preguntas de mapa.
Todas las preguntas que utilizan un mapa (incluidas geopunto, geotrace y geoshape) tienen métodos y parámetros comunes que puede utilizar para modificar su presentación en informes.
De forma predeterminada, un mapa de un informe utiliza el mapa web definido para la pregunta. Si la escala del mapa se establece en 0 o se omite el parámetro, la escala del mapa está determinada por las entidades del mapa de la siguiente manera:
- Si solo hay una entidad de puntos en el mapa, la escala de mapa coincide con la escala definida para la pregunta.
- Si solo hay una entidad poligonal o de línea en el mapa, la escala de mapa viene determinada por la extensión de la entidad.
- Si hay varias entidades en el mapa, la escala viene determinada por la extensión de todas las entidades.
Las preguntas de mapa admiten la definición del Id. de elemento del mapa web y la escala de mapa como parámetros opcionales. En el siguiente ejemplo, se utiliza una escala de mapa de 1:100.000:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
Para todas las preguntas de mapa, puede utilizar el método rotate para definir la rotación en el sentido de las agujas del reloj rumbo norte en relación con la vista. Acepta valores del 0 al 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Si deja el Id. de elemento de mapa web como una cadena vacía, se utiliza el mapa base predeterminado de la pregunta. Si establece la escala del mapa en 0 u omite este parámetro, el mapa utiliza la extensión predeterminada establecida para la pregunta.
El método mapExtent se puede utilizar para establecer explícitamente la extensión de un mapa en un informe. En el siguiente ejemplo, se muestra una extensión de mapa fija de Tokio (Japón):
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
Las preguntas de mapa también admiten la expresión de tamaño disponible para las preguntas de imagen. Puede utilizar esta expresión para controlar la resolución del mapa mostrado en el informe, como se puede ver en el siguiente ejemplo:
${location | size:400:400}
Puede utilizar las expresiones map, mapScale y size juntas para proporcionar un Id. de mapa web y una escala de mapa, así como una resolución de imagen de mapa, como se muestra en el siguiente ejemplo:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Nota:
Si va a configurar el tamaño de mapa y va a utilizar cualquier otro método de expresión, size debe estar situado en último lugar en la expresión.
Si el mapa contiene un gran número de registros, puede utilizar el método mapFilters para limitar los registros que se muestran. En el ejemplo siguiente, el parámetro where dónde se utiliza para filtrar un mapa web que solo tiene una capa para mostrar registros con un POP2000 superior a 999999:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
En el ejemplo siguiente de mapFilters, el primer parámetro filtra la capa de ciudades (con un Id. de capa de 18ece64a1fc-layer-5) para mostrar solamente los tres primeros registros que tienen la mayor población y se encuentran en el estado de California. El segundo parámetro, que está separado del primero mediante dos puntos, filtra la capa de estados (con un Id. de capa de 18ece64a1fc-layer-6) para mostrar solamente el estado de California:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Nota:
El Id. de capa es una propiedad del objeto de capa de entidades del JSON del mapa web.
De forma predeterminada, una pregunta de mapa se muestra utilizando un símbolo de mapa predeterminado, independientemente de la simbología definida en la capa de entidades. Puede utilizar el método drawingInfo para extraer y utilizar la información de dibujo almacenada en una capa de entidades específica, incluidos el símbolo, la etiqueta y la transparencia utilizados. Puede especificar esta información desde la capa actual o desde una capa de entidades concreta a través de una dirección URL proporcionada.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Si la encuesta no contiene preguntas de mapa, o si está creando informes para capas de entidades sin una encuesta asociada, se puede seguir devolviendo la geometría de un registro con el marcador de posición ${$shape}.
En una sección de resumen, una expresión para una pregunta de mapa muestra varias geometrías en la entrada de una pregunta. Para incluir otras respuestas para un informe individual, proporcione una expresión where con la etiqueta !important. Para obtener más información, consulte Sintaxis adicional. La siguiente expresión muestra todas las geometrías de la capa donde el valor de campo de estado es igual a 'broken':
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Nota:
En el ejemplo anterior, se omite la escala del mapa. Si establece la escala del mapa en 0 u omite el parámetro, y el mapa contiene varios registros, el mapa utiliza la extensión combinada para todos los registros.
Puede establecer la expresión where para que sea siempre una sentencia true a fin de garantizar que todas las geometrías de la capa se muestren:
${location | where:"1=1 !important"}
Esto también puede utilizarse para mostrar todos los puntos de una repetición:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
La palabra clave $shape también se puede utilizar para devolver varias geometrías de mapa.
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
La palabra clave $map puede utilizarse para imprimir un mapa web que no haga referencia a una pregunta de la encuesta.
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Geopunto
En las preguntas geopoint, puede utilizar expresiones para visualizar los valores de latitud o longitud de la pregunta, como se indica a continuación:
${location | getValue:"x"}
${location | getValue:"y"}
No puede mostrar ambos valores con una expresión; si ambos valores son necesarios, debe utilizar ambas expresiones.
Sugerencia:
También puede mostrar el valor de altitud con una expresión similar, pero solo si la capa de entidades subyacente admite valores z:
${location | getValue:"z"}
De forma predeterminada, los valores de latitud, longitud y altitud devuelven el valor original proporcionado en la respuesta de la encuesta, sin truncar. Dado que estos valores suelen ser mucho más largos de lo necesario en un informe, plantéese utilizar las expresiones round o toFixed para redondear el valor a una posición decimal específica.
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
De forma predeterminada, estos valores son la salida de la referencia espacial utilizada por la capa de entidades de la encuesta. Puede establecer una referencia espacial diferente como parámetro adicional proporcionando su WKID:
${location | getValue:"x":4326}
Geotrace y geoshape
En preguntas geotrace y geoshape, puede utilizar la expresión getValue para visualizar la longitud de la línea o el perímetro del polígono, respectivamente:
${polyline1 | getValue:"length":"meters":"planar"}
En las preguntas de geoshape, también puede utilizar la expresión getValue para visualizar el área del polígono:
${polygon1 | getValue:"area":"hectares":"geodesic"}
Las unidades y el método de cálculo son parámetros opcionales. Se admiten las siguientes unidades para la longitud:
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
Se admiten las siguientes unidades para el área:
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Como alternativa, puede utilizar cualquiera de las constantes esriSRUnitType o constantes esriSRUnit2Type compatibles con API REST de ArcGIS. En la expresión, utilice el código numérico para la constante sin comillas de la siguiente forma:
${polyline1 | getValue:"length":109002:"geodesic"}
Si no se especifican las unidades, el valor predeterminado es kilometers para la longitud y square-kilometers para el área.
El método puede ser geodesic o planar. Si no se especifica el método, se utiliza geodesic de forma predeterminada.