Como alterar dinamicamente o GRID MININTERVAL do MapServer?
Comecei a procurar usar algo semelhante a este exemplo de definição de camada GRID em um arquivo de mapa MapServer que desenhará grade de linha de latitude / longitude pelo menos a cada 5 graus:
LAYER
NAME "grid"
METADATA
"DESCRIPTION" "Grid"
END
TYPE LINE
STATUS ON
CLASS
NAME "Graticule"
COLOR 0 0 0
LABEL
COLOR 255 0 0
FONT "sans"
TYPE truetype
SIZE 8
POSITION AUTO
PARTIALS FALSE
BUFFER 2
OUTLINECOLOR 255 255 255
END
END
PROJECTION
"init=epsg:4326"
END
GRID
LABELFORMAT '%g°'
MININTERVAL 5
END
END # Layer
No entanto, não quero que o valor MININTERVAL seja codificado permanentemente e gostaria de poder variar esse valor inserindo um valor diferente na chamada de URL de uma página da web usando a notação map_object. Mas, eu não tive sucesso. Eu tentei isso na chamada de URL para MapServer:
& map_layer [grade] .grid [0] = MININTERVAL + 10 # mudando para 10 graus em vez de 5
usando o segundo exemplo neste link: https://mapserver.org/cgi/controls.html#cgi-mapfile-change-parameters. Porém, recebo um erro de análise ou um erro do servidor interno. Eu tentei mudar o nível de depuração para 5 e olhar os logs, mas eles não oferecem nenhuma ajuda. Talvez eu não esteja usando a notação map_object correta, mas não tenho certeza do que mais usar, dados os exemplos no link. Eu também tentei olhar o código do MapServer sem sucesso.
Estou usando o MapServer v 7.2.2, mas parece que a camada GRID já está disponível há algum tempo.
Respostas
Aparentemente, a sintaxe de tipo map_object_property tem as mesmas restrições que a substituição de tempo de execução . O GRID MININTERVAL não está na lista de parâmetros suportados .
Como @CL havia pensado, confirmei com Steve L no MapServer que de fato "nenhuma das palavras-chave relevantes da grade (GRID, MINTERVAL, LABELFORMAT) são reconhecidas no contexto de URL". A funcionalidade da camada GRID foi desenvolvida para casos de uso comuns. Portanto, no caso de alguém ter uma necessidade semelhante, Steve sugeriu que uma solução alternativa seria ter várias camadas GRID com configurações diferentes, por exemplo, o nome da camada "grade1" teria MININTERVAL 1, "grade5" teria MININTERVAL 5, etc.