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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2734 - (hide 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 frank 853 # 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 frank 861 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 frank 853
19 frank 861 if interval / 1000 > 1:
20 frank 913 interval = long(interval / 1000)
21 frank 861 unit = 'km'
22     else:
23 frank 913 interval = long(interval)
24 frank 861 unit = 'm'
25 frank 853
26 frank 861 return interval, unit
27 frank 853
28 frank 861 def roundInterval(d):
29     """Round float."""
30     if d<.001:
31 frank 913 interval = long(d*10000)/10000.0
32 frank 861 return interval, "%.4f" % interval
33     if d<.01:
34 frank 913 interval = long(d*1000)/1000.0
35 frank 861 return interval, "%.3f" % interval
36     if d<.1:
37 frank 913 interval = long(d*100)/100.0
38 frank 861 return interval, "%.2f" % interval
39     if d<1:
40 frank 913 interval = long(d*10)/10.0
41 frank 861 return interval, "%.1f" % interval
42     if d<10:
43 frank 913 return long(d), "%d" % d
44 frank 861 if d<100:
45 frank 913 interval = long(d/10) * 10
46 frank 861 return interval, "%d" % interval
47     if d<1000:
48 frank 913 interval = long(d/100) * 100
49 frank 861 return interval, "%d" % interval
50     if d<10000:
51 frank 913 interval = long(d/1000) * 1000
52 frank 861 return interval, "%d" % interval
53     if d<100000:
54 frank 913 interval = long(d/10000) * 10000
55 frank 861 return interval, "%d" % interval
56 frank 853
57 frank 861 return -1, ''
58 frank 853

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26