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

Другие вопросы по тегам