[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Maposmatic-dev] [PATCH 21/22] MultiPageStreetIndexRenderer: automatical
From: |
Thomas Petazzoni |
Subject: |
[Maposmatic-dev] [PATCH 21/22] MultiPageStreetIndexRenderer: automatically compute the number of columns |
Date: |
Fri, 30 Mar 2012 13:00:38 +0200 |
Signed-off-by: Thomas Petazzoni <address@hidden>
---
ocitysmap2/indexlib/multi_page_renderer.py | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/ocitysmap2/indexlib/multi_page_renderer.py
b/ocitysmap2/indexlib/multi_page_renderer.py
index 004249c..97a6f83 100644
--- a/ocitysmap2/indexlib/multi_page_renderer.py
+++ b/ocitysmap2/indexlib/multi_page_renderer.py
@@ -79,9 +79,19 @@ class MultiPageStreetIndexRenderer:
margin = label_em
+ max_drawing_width = 0
+ for category in self.index_categories:
+ for street in category.items:
+ w = street.min_drawing_width(label_layout, label_em)
+ if w > max_drawing_width:
+ max_drawing_width = w
+
+ columns_count = int(self.rendering_area_w / max_drawing_width)
+ if columns_count == 0:
+ columns_count = 1
+
# We have three columns
- COLUMNS_COUNT = 3
- column_width = self.rendering_area_w / COLUMNS_COUNT
+ column_width = self.rendering_area_w / columns_count
label_layout.set_width(int(UTILS.convert_pt_to_dots(
(column_width - margin) * pango.SCALE, dpi)))
@@ -105,7 +115,7 @@ class MultiPageStreetIndexRenderer:
offset_x += delta_x
actual_n_cols += 1
- if actual_n_cols == COLUMNS_COUNT:
+ if actual_n_cols == columns_count:
actual_n_cols = 0
offset_y = margin / 2.
offset_x = orig_offset_x
@@ -130,7 +140,7 @@ class MultiPageStreetIndexRenderer:
offset_x += delta_x
actual_n_cols += 1
- if actual_n_cols == COLUMNS_COUNT:
+ if actual_n_cols == columns_count:
actual_n_cols = 0
offset_y = margin / 2.
offset_x = orig_offset_x
--
1.7.4.1
- [Maposmatic-dev] [PATCH 09/22] indexlib: villages section is not of street type, (continued)
- [Maposmatic-dev] [PATCH 09/22] indexlib: villages section is not of street type, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 10/22] renderers: pass the db connection to the Renderer class constructor, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 12/22] indexlib: render page number as part of the street/amenity location, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 15/22] indexlib: properly differentiate the page_number=None and page_number=0 cases, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 13/22] multi-page: add in dex rendering with a new MultiPageStreetIndexRenderer cl ass, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 11/22] multi-page: prepare data for index generation, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 14/22] multi-page: remove multiple debugging outputs, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 18/22] indexlib: add min_drawing_width() method, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 19/22] MultiPageStreetIndexRenderer: remove debugging background rectangle, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 16/22] multi-page: in the street index, start page numbering at 1, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 21/22] MultiPageStreetIndexRenderer: automatically compute the number of columns,
Thomas Petazzoni <=
- [Maposmatic-dev] [PATCH 20/22] MultiPageStreetIndexRenderer: reduce size of default font, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 22/22] multi-page: minor fixups for compatibility with Gaƫl's work to remo ve the scaling, Thomas Petazzoni, 2012/03/30
- [Maposmatic-dev] [PATCH 17/22] index for multi-page: improve page_number handling, Thomas Petazzoni, 2012/03/30
- Re: [Maposmatic-dev] Implementation of a multi-page renderer, Jeroen van Rijn, 2012/03/30
Re: [Maposmatic-dev] Implementation of a multi-page renderer, Thomas Petazzoni, 2012/03/30