MapServer cgi-bin получает значение из строки запроса и объединяет его в запрос Postgres
Я работаю с cgi-bin и показываю карту с некоторыми данными из базы данных Postgres.
Но мне нужно ввести данные, в которых пользователь мог бы выбрать дату, и эта дата будет фильтровать результаты из базы данных.
У меня есть входные данные, и я отправляю параметр по URL (метод get), но я не знаю, как получить этот параметр из строки запроса cgi-bin и как объединить значение параметра с запросом базы данных.
Это часть кода файла карты:
LAYER
DATA "the_geom from (select * from
vista_puntos where date > <DATE_VAR_FROM_QUERY_STRING>) as subquery
using unique id_valor using srid=4326"
1 ответ
Решение
Используйте запрос выбора в DATA, после этого используйте FILTER*MAPSERV*, создайте предложение Where для Filter
пример
DATA "geom from roads"
FILTER "type='%road1%' or type='%road2%'"
CLASS
NAME "Road Type1"
EXPRESSION ('[type]' = 'type1')
STYLE
SIZE 10
COLOR 255 0 0
END
END
CLASS
NAME "Road Type2"
EXPRESSION ('[type]' = 'type2')
STYLE
SIZE 10
COLOR 0 255 0
END
END
Формат строки запроса похож на: ..mapserv.exe?map=mapfile&road1=type1&road2=type2