improve road name labelling
- print each name only once - enlarge text size - print white rectangle underneath label
This commit is contained in:
parent
70dea4a4db
commit
bb9672e1b6
@ -174,7 +174,8 @@ label.readout {
|
|||||||
cairo.Content.COLOR
|
cairo.Content.COLOR
|
||||||
(* tile-size num-tiles-x)
|
(* tile-size num-tiles-x)
|
||||||
(* tile-size num-tiles-y))
|
(* tile-size num-tiles-y))
|
||||||
g (cairo.Context.create map-surface)]
|
g (cairo.Context.create map-surface)
|
||||||
|
seen-roads {}]
|
||||||
|
|
||||||
(g:set_source_rgb 0.7 0.8 0.8)
|
(g:set_source_rgb 0.7 0.8 0.8)
|
||||||
(g:rectangle 0 0 (* tile-size num-tiles-x) (* tile-size num-tiles-y))
|
(g:rectangle 0 0 (* tile-size num-tiles-x) (* tile-size num-tiles-y))
|
||||||
@ -188,11 +189,25 @@ label.readout {
|
|||||||
(cairo-roads-path g lines bounds)
|
(cairo-roads-path g lines bounds)
|
||||||
|
|
||||||
(g:set_source_rgb 0.2 0.2 0.2)
|
(g:set_source_rgb 0.2 0.2 0.2)
|
||||||
(g:set_font_size (- road-width 3))
|
(g:set_font_size (+ road-width 1))
|
||||||
(each [_ line (pairs lines)]
|
(each [_ line (pairs lines)]
|
||||||
(case line.name
|
(case line.name
|
||||||
n (let [(x y angle) (label-coords line bounds)]
|
n (let [(x y angle) (label-coords line bounds)
|
||||||
(when (and x y)
|
ext (g:text_extents n)
|
||||||
|
w ext.width
|
||||||
|
h ext.height]
|
||||||
|
(when (and x y (not (. seen-roads n)))
|
||||||
|
(tset seen-roads n true)
|
||||||
|
|
||||||
|
(g:save)
|
||||||
|
(g:set_line_width h)
|
||||||
|
(g:set_source_rgb 1 1 1)
|
||||||
|
(g:move_to (- x 1) (- y 1))
|
||||||
|
(g:rotate angle)
|
||||||
|
(g:rel_line_to (+ w 1) 0)
|
||||||
|
(g:stroke)
|
||||||
|
(g:restore)
|
||||||
|
|
||||||
(g:save)
|
(g:save)
|
||||||
(g:move_to x y)
|
(g:move_to x y)
|
||||||
(g:rotate angle)
|
(g:rotate angle)
|
||||||
|
Loading…
Reference in New Issue
Block a user