GIS-LAB

Географические информационные системы и дистанционное зондирование

Пример 1.4: Подписи слоев и слои подписей

Мы можем добавить подписи к объектам на нашей карте:

MapServer имеет очень гибкий движок подписей. Он обеспечивает поддержку как битмаповых, так и truetype-шрифтов. Могут быть настроены наклон подписей и их расположение. Если вы уделите некоторое время изучению параметров подписей, то сможете создавать информативные и эстетически приятные карты.

Содержание файла example1-4.map:

Структура файла example1-4.map в виде иерархии объектов будет выглядеть следующим образом:

                                  MAP
      (altay_poly) LAYER----------|---------LAYER (altay_line)
           CLASS-----|------CLASS             |-CLASS
       STYLE-|-LABEL    STYLE-|-LABEL             |-STYLE

Рассмотрим несколько параметров, связанных с подписями (объектами LABEL):

FONTSET
Здесь мы указываем полный путь до файла списка truetype шрифтов. В этом файле перечислены все доступные шрифты. Для ознакомления просмотрите непосредственно сам файл fonts.list и документацию по шрифтам для более детального изучения. FONTSET – это параметр объекта MAP.

LABELITEM
Определяет, какое поле файла базы данных использовать для подписей. В нашем случае это поле "LABEL". LABELITEM – это параметр объекта LAYER.

LABEL
Обозначает начало подписи (объекта LABEL). Объект LABEL может использоваться и в составе других объектов (например, в составе масштабной линейки (объект SCALEBAR)).

COLOR
В пределах объекта LABEL определяет цвет подписи.

SHADOWCOLOR
Определяет цвет тени подписи.

SHADOWSIZE
Определяет размер тени. Значение этого параметра задается в пикселях. Так в нашем случае запись "2 2" означает, что высота и ширина тени – 2 пикселя.

TYPE
В пределах объекта LABEL определяет тип шрифта. Можно выбрать битмаповые (встроенные) или truetype-шрифты. Мы выбрали TRUETYPE.

FONT
Если вы определили тип шрифта TRUETYPE, необходимо указать какой именно шрифт необходимо использовать. В нашем примере был выбран шрифт "arial-bold" из файла списка шрифтов.

SIZE
При использовании truetype-шрифтов, значение этого параметра соответствует размеру шрифта в пикселях. При использовании битмаповых шрифтов, можно установить такие значения, как "small" или "large".

ANTIALIAS
Включает или отключает сглаживание truetype-шрифтов. Запомните, что значение этого параметра не ON или OFF, а TRUE или FALSE.

POSITION
Определяет положение текста подписи по отношению к подписываемым объектам. Значение этого параметра определяется комбинацией вертикального и горизонтального положения. Для вертикального выравнивания можно выбрать следующие значения: C – по центру, U – по верху, L – по низу. Для горизонтального выравнивания можно выбрать значения: C – по центру, R – по правому краю, L – по левому краю. Так для выравнивания подписи по центру подписываемого объекта, необходимо задать значение параметра POSITION "CC" (center-center). Или, если вы хотите поместить подпись в нижний левый угол, необходимо указать "LL". Существует возможность, позволяющая MapServer самостоятельно определять наилучшее расположение подписей. Для этого значение параметра POSITION должно быть выставлено как "AUTO".

PARTIALS
Включает или отключает создание неполных подписей. По умолчанию создание неполных подписей отключено. Данный параметр может принимать значения TRUE или FALSE.

MINDISTANCE
Минимальное расстояние в пикселях между повторяющимися подписями. Попробуйте уменьшить или увеличить значение этого параметра и посмотрите, как это сказывается на результирующей карте.

BUFFER
Используется для удобочитаемости карты. Дополняет (в пикселях) каждую подпись. Буфер в 4 пикселя означает, что никакая другая подпись не будет размещена по отношению к текущей ближе, чем на расстоянии в 4 пикселя.

ENCODING
Для российских пользователей возникает вечная проблема с кодировкой, решить ее можно добавив параметр ENCODING.

Вы можете также создавать подписи отдельно от полигонального слоя. В этом случае необходимо указать тип данных (TYPE) ANNOTATION. Взгляните на map-файл следующего примера, чтобы увидеть, как это делается. Сразу бросается в глаза, что объект CLASS внутри слоя подписей имеет цвет (COLOR) "-1 -1 -1". Так в MapServer обозначается прозрачность.

Пример 1.3 | Глава 1 | Содержание | Пример 1.5

Обсудить в форуме Комментариев — 85

Последнее обновление: February 27 2009