Como posso exibir caracteres em um mapa pelo MapFile?
Pergunta
Estou tentando mostrar um mapa usando o PostGIS+Mapserver. E eu exibi uma imagem PNG na minha web. No entanto, quero mostrar alguns charactores no mapa, assim:Mapsersert Demo http://demo.mapserver.org/cgi-bin/maperserv.exe?map=/ms4w/apps/tutorial/htdocs/example1-4.map&layer=states_poly&layer=states_line=map=Map
Este é o exemplo de MapServer
Agora estou usando o banco de dados (PostgreSQL), mas não um arquivo de forma. Como posso adicionar os charactores então?
Aqui está uma parte do meu MapFile:
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
Alguns disseram adicionar um "texto ([*])" no "rótulo", mas eu não sei como?
Obrigado pela ajuda!
Solução
Você deve usar o LABELITEM
Diretiva com o nome do campo da tabela que contém o texto que você deseja renderizar:
...
DATA "the_geom from province"
LABELITEM "<field_name>"
STATUS ON
...
Verifique a documentação do arquivo do mapa para obter mais detalhes
Outras dicas
A resposta do Amercader acima é bastante correta. No entanto, eu resolvi de AmercaderAjuda, mas um pouco de diferenças, apenas usando a subconsulta.
Aqui está um código secional:
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
O ponto principal é "dados"Atributo, adicionando uma subconsência; assim como o"LabelItem"O parâmetro do" s deve ser o mesmo que a seleção na subconsência.
Amercader me disse que a subconsulta é desnecessária (veja comentários). É legal!
Espero que essas palavras possam ajudar outros programadores usando o Mapsever. E obrigado Amercader.