[mapserver-users] anchor label positions
Donald Kerr
donald.kerr at dkerr.co.uk
Thu Sep 12 00:47:07 PDT 2013
I am now using a case statement/switch within the SQL since the data is in a
PostGis table. I am not sure if it is possible to use SQL to return a subset
of data from a Shapefile in Mapserver. If it is then the following may help.
It would be neat if the calculation 'CASE' could be done within the
LABEL/POSITION.
# POSITION
#
# The anchorposition is as follows in the CartographicText table:
#
# 2 5 8
# 1 4 7
# 0 3 6
#
# Corresponding MapServer positions
#
# ul uc ur
# cl cc cr
# ll lc lr
#
# Corresponding OpenLayers positions
#
# lt ct rt
# lm cm rm
# lb cb rb
# fontnumber
# 0 - Lutheran (used for non-Roman antiquities)
# 1 - Normal - Medium Roman font
# 2 - Light Roman font (used primarily for building numbers, Roman
antiquities, and some administrative names particularly in 1:10 000 areas)
# 3 - Suppressed text not supplied in Land-Line due to space limitations.
# textstyle
# 0 - Normal
# 1 - Italics
# Mapserver ANGLE is anticlockwise
# MasterMap orientation is measured in tenths of a degree anticlockwise from
due east (0-3599)
# For clockwise, ANGLE can be changed thus (360-ANGLE)
DATA "geom FROM (SELECT toid, featurecode, textstring, height,
orientation/10 AS orientation, ('x'||substring(col,1,2))::text::bit(8)::int
|| ' ' || ('x'||substring(col,3,2))::text::bit(8)::int || ' ' ||
('x'||substring(col,1,2))::text::bit(8)::int AS oscolor, CASE WHEN
fontnumber = 0 AND textstyle = 0 THEN 'BlackCastleMF' WHEN fontnumber = 0
AND textstyle = 1 THEN 'BlackCastleMF' WHEN fontnumber = 1 AND textstyle = 0
THEN 'arial' WHEN fontnumber = 1 AND textstyle = 1 THEN 'arialitalic' WHEN
fontnumber = 2 AND textstyle = 0 THEN 'arial' WHEN fontnumber = 2 AND
textstyle = 1 THEN 'arialitalic' ELSE 'arial' END AS font, CASE WHEN
anchorposition=0 THEN 'ur' WHEN anchorposition=1 THEN 'cr' WHEN
anchorposition=2 THEN 'lr' WHEN anchorposition=3 THEN 'uc' WHEN
anchorposition=4 THEN 'cc' WHEN anchorposition=5 THEN 'lc' WHEN
anchorposition=6 THEN 'ul' WHEN anchorposition=7 THEN 'cl' WHEN
anchorposition=8 THEN 'll' ELSE 'auto' END AS anchorpositiontxt, geom FROM
cartographictext) AS foo USING UNIQUE toid"
Regards,
Donald
From: mapserver-users-bounces at lists.osgeo.org
[mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of Schylberg Lars
Sent: 12 September 2013 07:53
To: mapserver-users at lists.osgeo.org
Subject: [mapserver-users] anchor label positions
Hello,
I have read the following discussion below but have not found out if
anything has happened since then.
http://lists.osgeo.org/pipermail/mapserver-users/2008-December/059123.html
<http://lists.osgeo.org/pipermail/mapserver-users/2010-November/067312.html>
http://lists.osgeo.org/pipermail/mapserver-users/2010-November/067312.html
I have shape files with anchor point positions:
7 8 9
4 5 6
1 2 3
That corresponds:
ul uc ur
cl cc cr
ll lc lr
I wrote my mapfile as shown below. Is there a more simple and shorter way
to express this today?
TJUST variable is the POSITION expressed as a integer between 1 and 9 in my
shape files
If there is no way to do this, could I remap the shape file with ogr2ogr to
add an extra column in the table with mapserver positions?
/Lars
LAYER
NAME 'LAKESNAMES'
TYPE POINT
GROUP 'default'
PROJECTION
'init=epsg:32633'
END
STATUS ON
SIZEUNITS PIXELS
DATA 'sve1milj_32633/tx_riks'
CLASSITEM KKOD
CLASS
NAME "TextLake5"
EXPRESSION /87|86/
LABEL
EXPRESSION ([TJUST] = 7)
SIZE 8
FONT 'sc'
TYPE truetype
POSITION ul
ANGLE [TRIKT]
COLOR 0 0 0
TEXT '[TEXT]'
END
LABEL
EXPRESSION ([TJUST] = 8)
SIZE 8
FONT 'sc'
TYPE truetype
POSITION uc
ANGLE [TRIKT]
COLOR 0 0 0
TEXT "[TEXT]"
END
LABEL
EXPRESSION ([TJUST] = 9)
SIZE 8
FONT 'sc'
TYPE truetype
POSITION ur
ANGLE [TRIKT]
COLOR 0 0 0
TEXT "[TEXT]"
END
LABEL
EXPRESSION ([TJUST] = 4)
SIZE 8
FONT 'sc'
TYPE truetype
POSITION cl
ANGLE [TRIKT]
COLOR 0 0 0
TEXT "[TEXT]"
END
LABEL
EXPRESSION ([TJUST] = 5)
SIZE 8
FONT 'sc'
TYPE truetype
POSITION cc
ANGLE [TRIKT]
COLOR 0 0 0
TEXT "[TEXT]"
END
LABEL
EXPRESSION ([TJUST] = 6)
... and 5 more expressions in the same way.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20130912/063d7038/attachment.htm>
More information about the MapServer-users
mailing list