/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/scalebar.py
ViewVC logotype

Contents of /branches/WIP-pyshapelib-bramz/Thuban/Model/scalebar.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2734 - (show annotations)
Thu Mar 1 12:42:59 2007 UTC (18 years ago) by bramz
File MIME type: text/x-python
File size: 1520 byte(s)
made a copy
1 # Copyright (c) 2001, 2002 by Intevation GmbH
2 # Authors:
3 # Frank Koormann <[email protected]>
4 #
5 # This program is free software under the GPL (>=v2)
6 # Read the file COPYING coming with Thuban for details.
7
8 __version__ = "$Revision$"
9
10 from Thuban import _
11
12 def deriveInterval(width, scale):
13 """Calculate scalebar interval and unit which fits width for scale."""
14 try:
15 interval = width / scale
16 except ZeroDivisionError:
17 return -1, ''
18
19 if interval / 1000 > 1:
20 interval = long(interval / 1000)
21 unit = 'km'
22 else:
23 interval = long(interval)
24 unit = 'm'
25
26 return interval, unit
27
28 def roundInterval(d):
29 """Round float."""
30 if d<.001:
31 interval = long(d*10000)/10000.0
32 return interval, "%.4f" % interval
33 if d<.01:
34 interval = long(d*1000)/1000.0
35 return interval, "%.3f" % interval
36 if d<.1:
37 interval = long(d*100)/100.0
38 return interval, "%.2f" % interval
39 if d<1:
40 interval = long(d*10)/10.0
41 return interval, "%.1f" % interval
42 if d<10:
43 return long(d), "%d" % d
44 if d<100:
45 interval = long(d/10) * 10
46 return interval, "%d" % interval
47 if d<1000:
48 interval = long(d/100) * 100
49 return interval, "%d" % interval
50 if d<10000:
51 interval = long(d/1000) * 1000
52 return interval, "%d" % interval
53 if d<100000:
54 interval = long(d/10000) * 10000
55 return interval, "%d" % interval
56
57 return -1, ''
58

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26