¿Cómo cambiar dinámicamente GRID MININTERVAL de MapServer?

Sep 02 2020

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

CL. Sep 02 2020 at 16:48

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 .

teknocreator Sep 08 2020 at 23:45

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.