arzobispo писал(а):Вот возникли у меня следующие вопросы:
1. Где прописать SQL запрос к Базе данных?
2. Как связать Карту с Базой данных (как понял, то, что было в ответе на прошлое сообщение)?
Это два связанных вопроса, и отвечать на них лучше одновременно.
Предполагаю, что у вас уже есть файл, описывающий карту (файл, с расширением map). И уже есть шаблон html, позволяющий отображать эту карту в окне браузера. (Если этого еще нет, то см. описание основных этапов создания карты и шаболонов: 
http://gis-lab.info/qa/mapserver-begin.html).
Предполагаю также, что вам нужно добавить еще один слой к карте - слой данных PostGIS.
Для этого:
Создаете новый слой в вашем map-файле (т.е. добавляете туда предложение LAYER) и настраиваете параметры (то, что не относится к БД, заменяю многоточием):
Код: Выделить всё
LAYER
    NAME      ...
    TYPE      <зависит от типа геометриии данных в вашей БД>
    CONNECTIONTYPE postgis	# Указываете, что слой - слой PostGIS
    CONNECTION "dbname=<имя> host=<адрес> port=<порт> user=<пользователь> password=<пароль>" # это и есть строка подключения к базе данных
    DATA "<имя поля с геоданными> from <таблица>" # выборка данных из БД
    HEADER ...
    FOOTER ...
    TEMPLATE ...
    PROJECTION
      ...
    END
    METADATA
      ...
    END
    CLASS
       ...
    END
     ...
  END
Итак, ответ на вопрос № 2:
Код: Выделить всё
CONNECTION "dbname=<имя> host=<адрес> port=<порт> user=<пользователь> password=<пароль>"
Это строка подключения, в которой задается имя базы данных, адрес сервера, порт, имя пользователя и пароль доступа (некоторые параметры могут отсутствовать - зависит от настроек подключения к БД в PostgreSQL).
Ответ на вопрос № 1: 
Код: Выделить всё
DATA "<имя поля с геоданными> from <таблица>"
Здесь описывается имя поле с геометрическими данными и таблица, откуда выбираются данные. Например,
Здесь же можно указать более сложный запрос - на выборку данных по условию, например:
Код: Выделить всё
DATA "the_geom from (SELECT landuse.object_id, landuse.area,
forest.type, forest.the_geom FROM landuse INNER JOIN forest ON
landuse.gid = forest.gid) as foo using unique gid using
SRID=4326"
Более подробно обо все этом сказано в учебных материалах: 
коротко в pdf  и 
набор учебных материалов
arzobispo писал(а):
3. Как связать пользовательский интерфейс с запросом SQL?
С этим немного посложнее (для меня). Вижу 2 пути (возможно есть еще) оба из них я реализовывал давно и подробности помню плохо:
1) Пойти по пути использования параметров qstring, qlayer, qitem и т.д., предоставляемых MapServer. Об этом сказано 
здесь.
2) Использовать 
фильтры. Причем, параметры фильтрации можно менять динамически 
См. раздел "Changing map file parameters via a form or a URL"