2 votos

Fallo de la expresión de comparación de cadenas en Mapserver al incluir fieldname

Dentro de las clases puedo hacer coincidir cadenas usando CLASSITEM, pero no cuando incluyo el nombre del campo en la expresión, por ejemplo (dentro de una declaración de capa):

CLASSITEM "myfieldname"
CLASS
    EXPRESSION "sometext"
END

Funciona bien, pero

CLASS
    EXPRESSION ([myfieldname] = "sometext")
END

No devuelve ningún dato

El segundo método está bien cuando se trabaja con números enteros, por ejemplo

CLASS
    EXPRESSION ([myintegerfieldname] = 10)
END

He intentado encerrar las cadenas con comillas simples, comillas dobles, utilizando una regex en su lugar. El mismo comportamiento se produce cuando los datos de origen son un shapefile o una capa postgis.

Utilizar CLASSITEM es obviamente una buena solución, pero sería útil saber qué estoy haciendo mal con la comparación directa.

Gracias.

1voto

Celso Puntos 66

Inténtalo:

CLASS
   EXPRESSION ("[myfieldname]" = "sometext")
END

esto debería forzar a mapserver a utilizar el operador de igualdad de cadenas en ambos campos y explica por qué funciona con números.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X