Как я могу отображать символы на карте по файлу карты? - PullRequest
3 голосов
/ 24 марта 2010

Я пытаюсь показать карту, используя postGIS + Mapserver. И я отобразил изображение PNG на своем веб-сайте. Тем не менее, я хочу показать некоторые символы на карте, вот так: демонстрация mapserv http://demo.mapserver.org/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/example1-4.map&layer=states_poly&layer=states_line&mode=map

это пример с Mapserver

Сейчас я использую базу данных (postgreSQL), но не файл формы. Как я могу добавить символы в этом случае?

Вот часть моего файла карты:

LAYER
  CONNECTIONTYPE postgis
  NAME "state"
  //Connect to a remote spatial database
  CONNECTION "user=postgres dbname=*** host=*** password=***"
  PROCESSING "CLOSE_CONNECTION=DEFER"
  DATA "the_geom from province"
  STATUS ON
  TYPE POLYGON
  CLASS
    STYLE
      COLOR 122 122 122
      OUTLINECOLOR 0 0 0
    END
    LABEL
      COLOR 132 31 31
      SHADOWCOLOR 218 218 218
      SHADOWSIZE 2 2
      TYPE TURETYPE
      FONT arial-bold
      SIZE 12
      ANTIALIAS TRUE
      POSITION CL
      PARTIALS FALSE
      MINDISTANCE 300
      BUFFER 4
    END
  END
END

Некоторые говорили, что добавили "TEXT ([*])" в "LABEL", но я не знаю как?

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Вы должны использовать директиву LABELITEM с именем поля таблицы, содержащего текст, который вы хотите визуализировать:

...
DATA "the_geom from province"
LABELITEM "<field_name>"
STATUS ON
...

Дополнительную информацию смотрите в документации к файлу карты

http://mapserver.org/mapfile/layer.html

0 голосов
/ 30 марта 2010

Ответ amercader, приведенный выше, вполне корректен. Тем не менее, я решил его с помощью amercader , но с небольшими отличиями, только с помощью подзапроса.


Вот код раздела:

LAYER
  CONNECTIONTYPE postgis
  NAME "state"
  //# Connect to a remote spatial database
  CONNECTION "user=postgres dbname=*** host=*** password=***"
  PROCESSING "CLOSE_CONNECTION=DEFER"
  DATA "the_geom from (select gid, the_geom, name from province) as subquery using unique gid using srid=4326"
  STATUS ON
  TYPE POLYGON
  LABELITEM "name"
  CLASS
    STYLE
      ...
    END
    LABEL
      ...
    END
  END
END

Ключевым моментом является атрибут " data ", добавляющий подзапрос; а также параметр " labelitem " должен совпадать с выбором в подзапросе.

amercader сказал мне, что подзапрос не нужен (см. Комментарии). Это круто!

Я надеюсь, что эти слова могут помочь другим программистам, использующим mapserver. И спасибо amercader.

...