Comment changer dynamiquement GRID MININTERVAL de MapServer?

Sep 02 2020

J'ai commencé à chercher à utiliser quelque chose de similaire à cet exemple de définition de la couche GRID dans un mapfile MapServer qui dessinera une grille de lignes lat / lon au moins tous les 5 degrés:

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

Cependant, je ne veux pas que la valeur MININTERVAL soit codée en dur et j'aimerais pouvoir faire varier cette valeur en entrant une valeur différente dans l'appel d'URL à partir d'une page Web en utilisant la notation map_object. Mais j'ai échoué. J'ai essayé ceci dans l'appel d'URL à MapServer:

& map_layer [grid] .grid [0] = MININTERVAL + 10 #changement à 10 degrés au lieu de 5

en utilisant le deuxième exemple sur ce lien: https://mapserver.org/cgi/controls.html#cgi-mapfile-change-parameters. Mais, j'obtiens une erreur d'analyse ou une erreur de serveur interne. J'ai essayé de passer le niveau de débogage à 5 et de consulter les journaux, mais ils n'offrent aucune aide. Peut-être que je n'utilise tout simplement pas la bonne notation map_object, mais je ne sais pas quoi utiliser d'autre étant donné les exemples dans le lien. J'ai également essayé de regarder le code MapServer en vain.

J'utilise MapServer v 7.2.2 mais il semble que la couche GRID soit disponible depuis un certain temps maintenant.

Réponses

CL. Sep 02 2020 at 16:48

Apparemment, la syntaxe du type map_object_property a les mêmes restrictions que la substitution d'exécution . GRID MININTERVAL ne figure pas dans la liste des paramètres pris en charge .

teknocreator Sep 08 2020 at 23:45

Comme @CL l'avait pensé, j'ai confirmé avec Steve L de MapServer qu'en effet "aucun des mots-clés de grille pertinents (GRID, MINTERVAL, LABELFORMAT) n'est reconnu dans un contexte d'URL." La fonctionnalité de couche GRID était orientée vers des cas d'utilisation courants. Par conséquent, au cas où quelqu'un d'autre aurait un besoin similaire, Steve a suggéré qu'une solution serait d'avoir plusieurs couches GRID avec des paramètres différents, par exemple le nom de la couche "grid1" aurait MININTERVAL 1, "grid5" aurait MININTERVAL 5, etc.