我正在尝试使用postGIS + Mapserver显示地图。我在WEB中显示了PNG图片。 但是,我想在地图中显示一些特征,就像这样: mapserv demo 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),但不是形状文件。那我该如何添加字符?
以下是我的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
有人说在“LABEL”中添加“TEXT([*])”,但我不知道怎么做?
感谢您的帮助!
答案 0 :(得分:1)
您应该使用LABELITEM
指令以及包含您要呈现的文本的表的字段名称:
...
DATA "the_geom from province"
LABELITEM "<field_name>"
STATUS ON
...
查看地图文件文档以获取更多详细信息
答案 1 :(得分:0)
上面的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
关键点是“数据”属性,添加子查询;以及“ labelitem ”的参数必须与在子查询中选择的参数相同。
amercader告诉我,子查询是不必要的(见评论)。真酷!
我希望这些话可以帮助其他使用mapserver的程序员。 并感谢amercader。