/[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 861 - (hide annotations)
Thu May 8 12:26:44 2003 UTC (21 years, 10 months ago) by frank
Original Path: trunk/thuban/Thuban/Model/scalebar.py
File MIME type: text/x-python
File size: 1509 byte(s)
Rendering moved to Thuban/UI/scalebar.py
(deriveInterval):
	Calculate scalebar interval and unit which fits in width for scale.
(roundInterval): Round float.

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     interval = int(interval / 1000)
21     unit = 'km'
22     else:
23     interval = int(interval)
24     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     interval = int(d*10000)/10000.0
32     return interval, "%.4f" % interval
33     if d<.01:
34     interval = int(d*1000)/1000.0
35     return interval, "%.3f" % interval
36     if d<.1:
37     interval = int(d*100)/100.0
38     return interval, "%.2f" % interval
39     if d<1:
40     interval = int(d*10)/10.0
41     return interval, "%.1f" % interval
42     if d<10:
43     return int(d), "%d" % d
44     if d<100:
45     interval = int(d/10) * 10
46     return interval, "%d" % interval
47     if d<1000:
48     interval = int(d/100) * 100
49     return interval, "%d" % interval
50     if d<10000:
51     interval = int(d/1000) * 1000
52     return interval, "%d" % interval
53     if d<100000:
54     interval = int(d/10000) * 10000
55     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