Exemplos de expressões de relatório para perguntas de mapa são fornecidos abaixo.
Todas as perguntas que usam um mapa—incluindo ponto geográfico, traçado geográfico ou forma geográfica—têm métodos e parâmetros comuns que você pode usar para modificar sua apresentação em relatórios.
Por padrão, um mapa em um relatório usa o mapa da web definido para a pergunta. Se a escala do mapa for definida como 0 ou o parâmetro for omitido, a escala do mapa será determinada pelas feições no mapa da seguinte forma:
- Se houver apenas uma feição de ponto no mapa, a escala do mapa corresponde à escala definida para a pergunta.
- Se houver apenas uma feição de linha ou polígono no mapa, a escala do mapa será determinada pela extensão da feição.
- Se houver várias feições no mapa, a escala é determinada pela extensão de todas as feições.
As perguntas do mapa suportam a configuração da ID de item do mapa da web e da escala de mapa como parâmetros opcionais. No exemplo seguinte, uma escala do mapa de 1:100.000 é utilizada:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000}
Para todas as perguntas de mapa, você pode usar o método rotate para definir a rotação no sentido horário do norte devido em relação à visualização. Aceita valores de 0 a 360.
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | rotate:90}
Se você deixar o ID do item de mapa da web como uma string vazia, o mapa base padrão da pergunta será utilizada. Se você definir a escala do mapa como 0 ou omitir esse parâmetro, o mapa usará a extensão padrão definida para a pergunta.
O método mapExtent pode ser usado para definir explicitamente a extensão de um mapa em um relatório. No exemplo a seguir, uma extensão de mapa fixa de Tóquio, Japão, é exibida:
${location | mapExtent:139.7:35.6:139.9:35.8:4326}
As perguntas de ponto geográfico também suportam a expressão de tamanho disponível para perguntas de imagem. Você pode usar esta expressão para controlar a resolução do mapa exibido no relatório, conforme mostrado no exemplo a seguir:
${location | size:400:400}
Você pode usar as expressões map, mapScale e size juntas para fornecer um ID de mapa da web e escala de mapa, como também, uma resolução da imagem de mapa, conforme mostrado no exemplo a seguir:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Anotação:
Se você estiver definindo o tamanho de um mapa enquanto usa qualquer outro método de expressão, size deverá ser colocado por último na expressão.
Se o mapa tiver um grande número de registros, você poderá usar o método mapFilters para limitar quais registros serão exibidos. No exemplo a seguir, o parâmetro where é usado para filtrar um mapa da web que tem apenas uma camada para mostrar registros com um POP2000 maior que 999999:
${location | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"where=POP2000>999999"}
No exemplo a seguir de mapFilters, o primeiro parâmetro filtra a camada de cidades (com um ID de camada de 18ece64a1fc-layer-5) para mostrar apenas os três primeiros registros que têm a maior população no estado da Califórnia. Separado do primeiro parâmetro por dois pontos, o segundo parâmetro filtra a camada de estados (com um ID de camada de 18ece64a1fc-layer-6) para mostrar apenas o estado da Califórnia:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapFilters:"'18ece64a1fc-layer-5':where=ST='CA'&orderByFields=POP2000 ASC&resultRecordCount=3":"'18ece64a1fc-layer-6':where=stateName='California'"}
Anotação:
O ID da camada é uma propriedade do objeto da camada de feição do JSON de mapa da web.
Por padrão, uma pergunta de mapa é exibida usando um símbolo de mapa padrão, independentemente da simbologia definida na camada de feição. Você pode usar o método drawingInfo para extrair e usar as informações de desenho armazenadas em uma camada de feição específica, incluindo o símbolo, rótulo e transparência usados. Você pode especificar essas informações a partir da camada atual ou de uma camada de feição específica por uma URL fornecida.
${location | drawingInfo:"currentLayer"}
${location | drawingInfo:"https://.../FeatureServer/0"}
Se a pesquisa não tiver uma pergunta de mapa ou você estiver criando relatórios para camadas de feição sem uma pesquisa associada, a geometria de um registro poderá ainda ser retornada utilizando o espaço reservado ${$shape}.
Em uma seção de resumo, uma expressão para uma pergunta de mapa exibe várias geometrias na entrada para uma pergunta. Para incluir outras respostas para um relatório individual, forneça uma expressão where com a tag !important. Para obter mais informações, consulte Sintaxe adicional. A seguinte expressão exibe todas as geometrias na camada onde o valor do campo de status é igual a 'quebrado':
${location | where:"status='broken' !important" | map:"<itemID>" | size:400:300}
Anotação:
No exemplo acima, a escala do mapa é omitida. Se você definir a escala do mapa como 0 ou omitir o parâmetro e o mapa tiver vários registros, o mapa usará a extensão combinada para todos os registros.
Você pode definir a expressão where para sempre ser uma declaração verdadeira para garantir que todas as geometrias na camada sejam exibidas:
${location | where:"1=1 !important"}
Isso também pode ser usado para exibir todos os pontos em uma repetição:
${repeat1.repeatLocation | where:"inspectionId=123 !important" | size:400:300}
A palavra-chave $shape também pode ser usada para retornar múltiplas geometrias de mapa:
${$shape | where:"1=1 !important" | drawingInfo:"currentLayer" | size:400:300}
A palavra-chave $map pode ser usada para imprimir um mapa que não faz referência a uma pergunta da pesquisa:
${$map | map:"7e2b9be8a9c94e45b7f87857d8d168d6" | mapScale:100000 | size:400:400}
Ponto Geográfico
Para perguntas de ponto geográfico, você pode usar expressões para exibir os valores de latitude ou longitude da pergunta da seguinte maneira:
${location | getValue:"x"}
${location | getValue:"y"}
Você não pode exibir os dois valores com uma expressão; se ambos os valores forem necessários, você deverá usar ambas as expressões.
Dica:
Você também pode exibir o valor da altitude por meio de uma expressão semelhante, mas apenas se a camada de feição subjacente suportar valores z:
${location | getValue:"z"}
Por padrão, os valores de latitude, longitude e altitude retornam o valor original fornecido na resposta da pesquisa, sem truncamento. Como esses valores geralmente podem ser muito mais longos do que o necessário em um relatório, considere usar as expressões round ou toFixed para arredondar o valor para uma casa decimal específica.
${location | getValue:"x" | round:3}
${location | getValue:"x" | toFixed:3}
Por padrão, estes valores são a saída para a referência espacial utilizada pela camada de feição da pesquisa. Você pode configurar uma referência espacial diferente como um parâmetro adicional fornecendo seu WKID:
${location | getValue:"x":4326}
Traçado geográfico e forma geográfica
Para perguntas de traçado geográfico e forma geográfica, a expressão getValue pode ser utilizada para exibir o comprimento da linha ou o perímetro do polígono, respectivamente:
${polyline1 | getValue:"length":"meters":"planar"}
Para perguntas de forma geográfica, você também pode usar a expressão getValue para exibir a área do polígono:
${polygon1 | getValue:"area":"hectares":"geodesic"}
O método de unidades e de cálculo são parâmetros opcionais. As unidades seguintes são aceitas para comprimento:
- feet
- kilometers
- meters
- miles
- nautical-miles
- yards
As unidades seguintes são aceitas para área:
- acres
- hectares
- square-miles
- square-kilometers
- square-meters
- square-feet
- square-yards
Alternativamente, você pode usar quaisquer das constantes esriSRUnitType ou consantes esriSRUnit2Type suportadas pelo ArcGIS REST API. Na expressão, utilize o código numérico da constante sem aspas como segue:
${polyline1 | getValue:"length":109002:"geodesic"}
Se nenhuma unidade for especificada, o padrão será kilometers para comprimento e square-kilometers para área.
O método pode ser geodesic ou planar. Se nenhum método for especificado, geodesic será utilizado por padrão.