Comment changer dynamiquement GRID MININTERVAL de MapServer?
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
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 .
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.