¿Cómo puedo mostrar caracteres en un mapa de MapFile?
Pregunta
Estoy tratando de mostrar un mapa usando Postgis+Mapserver. Y he mostrado una imagen de PNG en mi web. Sin embargo, quiero mostrar algunos charactores en el mapa, solo así:mapserv demo http://demo.mapserver.org/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/example1-4.map&layer=states_poly&layer=states_line=map
Este es el ejemplo de Mapas
Ahora estoy usando la base de datos (PostgreSQL), pero no un archivo de forma. ¿Cómo puedo agregar los Charactors entonces?
Aquí hay una parte de mi mapa:
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
Algunos dijeron agregando un "texto ([*])" en "etiqueta", pero no sé cómo.
¡Gracias por tu ayuda!
Solución
Deberías usar el LABELITEM
Directiva con el nombre del campo de la tabla que contiene el texto que desea renderizar:
...
DATA "the_geom from province"
LABELITEM "<field_name>"
STATUS ON
...
Consulte la documentación del archivo del mapa para obtener más detalles
Otros consejos
La respuesta de Amercader anterior es bastante correcta. Sin embargo, lo resolví de amercaderLa ayuda, pero un poco de diferencias, solo usando subconsulto.
Aquí hay un código seccional:
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
El punto clave es "datos"Atributo, agregando una subconsulta; así como el"etiqueta"El parámetro de" debe ser el mismo que seleccionar en subconsulta.
Amercader me dijo que la subconsulta es innecesaria (ver comentarios). ¡Es genial!
Espero que estas palabras puedan dar una mano a otros programadores que usan el mapserver. Y gracias Amercader.