11 |
from Thuban.Model.scalebar import deriveInterval, roundInterval |
from Thuban.Model.scalebar import deriveInterval, roundInterval |
12 |
from Thuban.Model.proj import PROJ_UNITS_METERS |
from Thuban.Model.proj import PROJ_UNITS_METERS |
13 |
|
|
14 |
from wxPython.wx import * |
import wx |
15 |
|
|
16 |
class ScaleBar: |
class ScaleBar: |
17 |
|
|
28 |
and scale > 0.0: |
and scale > 0.0: |
29 |
|
|
30 |
# We have a projection, draw the scalebar in bw |
# We have a projection, draw the scalebar in bw |
31 |
BlackPen = wxBLACK_PEN |
BlackPen = wx.BLACK_PEN |
32 |
BlackBrush = wxBLACK_BRUSH |
BlackBrush = wx.BLACK_BRUSH |
33 |
BlackText = wxBLACK |
BlackText = wx.BLACK |
34 |
|
|
35 |
# Get the dimension |
# Get the dimension |
36 |
width, height = size |
width, height = size |
37 |
posx, posy = position |
posx, posy = position |
42 |
interval, unit = deriveInterval(width, scale) |
interval, unit = deriveInterval(width, scale) |
43 |
l2width, l2height = dc.GetTextExtent("%d %s"%(interval,unit)) |
l2width, l2height = dc.GetTextExtent("%d %s"%(interval,unit)) |
44 |
width = width - 4.0 - l1width/2.0 -l2width/2.0 |
width = width - 4.0 - l1width/2.0 -l2width/2.0 |
45 |
|
|
46 |
# Having precised the width now the final interval can be calculated |
# Having precised the width now the final interval can be calculated |
47 |
interval, unit = deriveInterval(width, scale) |
interval, unit = deriveInterval(width, scale) |
48 |
interval, label = roundInterval(interval) |
interval, label = roundInterval(interval) |
49 |
|
|
50 |
if interval > 0.0: |
if interval > 0.0: |
51 |
# We draw 2 rectangles with half the width |
# We draw 2 rectangles with half the width |
52 |
if unit == 'km': |
if unit == 'km': |
53 |
width = int(interval*1000.0*scale/2) |
width = int(interval*1000.0*scale/2) |
54 |
else: |
else: |
55 |
width = int(interval*scale/2) |
width = int(interval*scale/2) |
56 |
|
|
57 |
dc.SetPen(BlackPen) |
dc.SetPen(BlackPen) |
58 |
|
|
59 |
brush = wxBrush(wxWHITE, wxSOLID) |
brush = wx.Brush(wx.WHITE, wx.SOLID) |
60 |
dc.SetBrush(brush) |
dc.SetBrush(brush) |
61 |
dc.DrawRectangle(posx+4,posy+2,width,8) |
dc.DrawRectangle(posx+4,posy+2,width,8) |
62 |
|
|