¿Cómo cambiar dinámicamente GRID MININTERVAL de MapServer?
Comencé a buscar en el uso de algo similar a este ejemplo de la definición de capa GRID en un archivo de mapa MapServer que dibujará una cuadrícula de líneas lat / lon al menos cada 5 grados:
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
Sin embargo, no quiero que el valor MININTERVAL esté codificado y me gustaría poder variar ese valor ingresando un valor diferente en la llamada URL desde una página web usando la notación map_object. Pero no he tenido éxito. He intentado esto en la llamada URL a MapServer:
& map_layer [grid] .grid [0] = MININTERVAL + 10 # cambiando a 10 grados en lugar de 5
usando el segundo ejemplo en este enlace: https://mapserver.org/cgi/controls.html#cgi-mapfile-change-parameters. Pero obtengo un error de análisis o un error interno del servidor. Intenté cambiar el nivel de depuración a 5 y mirar los registros, pero no ofrecen ninguna ayuda. Quizás no estoy usando la notación map_object correcta, pero no estoy seguro de qué más usar dados los ejemplos en el enlace. También intenté mirar el código de MapServer sin éxito.
Estoy usando MapServer v 7.2.2 pero parece que la capa GRID ha estado disponible por un tiempo.
Respuestas
Aparentemente, la sintaxis de tipo map_object_property tiene las mismas restricciones que la sustitución en tiempo de ejecución . GRID MININTERVAL no está en la lista de parámetros admitidos .
Como había pensado @CL, confirmé con Steve L en MapServer que, de hecho, "ninguna de las palabras clave de cuadrícula relevantes (GRID, MINTERVAL, LABELFORMAT) se reconoce en el contexto de la URL". La funcionalidad de la capa GRID se orientó hacia casos de uso comunes. Por lo tanto, en caso de que alguien más tuviera una necesidad similar, Steve sugirió que una solución sería tener varias capas de GRID con diferentes configuraciones, por ejemplo, el nombre de la capa "grid1" tendría MININTERVAL 1, "grid5" tendría MININTERVAL 5, etc.