ocitysmap-polish-translation:ocitysmap-polish-translation.git
6 years agoUpdate german translation master
malenki [Thu, 23 Dec 2010 22:20:26 +0000 (23:20 +0100)]
Update german translation

7 years agoHave map generation date follow requested locale. Fixes #31498.
Maxime Petazzoni [Mon, 1 Nov 2010 19:47:44 +0000 (12:47 -0700)]
Have map generation date follow requested locale. Fixes #31498.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoBelarusian (be) translation
Yauhen Kharuzhy [Fri, 29 Oct 2010 21:40:27 +0000 (14:40 -0700)]
Belarusian (be) translation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoUpdated Catalan translation
Joan Montané [Fri, 22 Oct 2010 16:29:01 +0000 (09:29 -0700)]
Updated Catalan translation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoPortuguese (pt_BR) translation update
Rodrigo de Avila [Tue, 19 Oct 2010 17:05:43 +0000 (10:05 -0700)]
Portuguese (pt_BR) translation update

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMerge commit 'remotes/public/d2-ocitysmap2'
Maxime Petazzoni [Mon, 11 Oct 2010 22:34:12 +0000 (15:34 -0700)]
Merge commit 'remotes/public/d2-ocitysmap2'

7 years agoRenamed --polygon-osmid cmdline option as --osmid
David Decotigny [Mon, 11 Oct 2010 08:13:14 +0000 (10:13 +0200)]
Renamed --polygon-osmid cmdline option as --osmid

7 years agoFixed references to Poygon ctor in shapely
David Decotigny [Mon, 11 Oct 2010 08:11:16 +0000 (10:11 +0200)]
Fixed references to Poygon ctor in shapely

7 years agoFix trivial error due to previous patch-cleanup
David Decotigny [Sun, 10 Oct 2010 14:30:00 +0000 (16:30 +0200)]
Fix trivial error due to previous patch-cleanup

7 years agoAccept empty indexes
David Decotigny [Sun, 10 Oct 2010 14:01:37 +0000 (16:01 +0200)]
Accept empty indexes

This patch allows ocitysmap to support empty indexes (empty areas).

7 years agoSupport for complex city envelopes
David Decotigny [Sun, 10 Oct 2010 13:54:55 +0000 (15:54 +0200)]
Support for complex city envelopes

Some OSM Ids such as 365634 have several entries in the polygon/line
tables. The original maposmatic code crashed because it assumed only
one entry was in the DB, and the ocitysmap code only considered the
1st entry returned by postgis.

This patch allows to work on the union of all the areas returned by
the polygon and line tables.

It adds another dependency: shapely. This allows to call libgeos
functions from within python. This also calls for some code
refactoring (=> TODO): the coords et al. API should be replaced by the
plain shapelib API
(http://gispython.org/shapely/docs/1.2/manual.html).

7 years agoUpdated for compat with maposmatic
David Decotigny [Sun, 19 Sep 2010 15:18:48 +0000 (17:18 +0200)]
Updated for compat with maposmatic

7 years agoFixed install inst for karmic + deprecating main INSTALL
David Decotigny [Sat, 11 Sep 2010 15:04:52 +0000 (17:04 +0200)]
Fixed install inst for karmic + deprecating main INSTALL

7 years agoUpdated setup.py
David Decotigny [Sat, 11 Sep 2010 14:59:42 +0000 (16:59 +0200)]
Updated setup.py

Also make sure ocitysmap2 is still working even if the logo cannot be found

7 years agofixed typo
David Decotigny [Sat, 11 Sep 2010 14:39:27 +0000 (16:39 +0200)]
fixed typo

7 years agoReorganized global layout managers
David Decotigny [Sat, 11 Sep 2010 14:38:16 +0000 (16:38 +0200)]
Reorganized global layout managers

Split the renderers.py file info:
 - renderers.py: the layour registry
 - abstract_renderer: the ABC for a renderer
 - singe_page_renderer: 3 classes to render into a single page

7 years agoUpdated i18n
David Decotigny [Sat, 11 Sep 2010 13:44:22 +0000 (15:44 +0200)]
Updated i18n

7 years agoUpdated doc
David Decotigny [Sat, 11 Sep 2010 13:38:25 +0000 (15:38 +0200)]
Updated doc

7 years agoMake sure PostGIS is >= 1.5
David Decotigny [Sat, 11 Sep 2010 13:27:38 +0000 (15:27 +0200)]
Make sure PostGIS is >= 1.5

Raise an AssertionError when postgis is not >= 1.5.

7 years agoCommand-line frontend.
David Decotigny [Sat, 11 Sep 2010 13:00:41 +0000 (15:00 +0200)]
Command-line frontend.

Implemented ocitysmap2-render command-line frontend. Tested it on
Chevreuse (OSM ID -943886) with many possible cmdline option
combinations. Default layout is now map with index at bottom.

7 years agoMajor reorganization, new maplib/indexlib/layoutlib hierarchy
David Decotigny [Sat, 11 Sep 2010 10:31:08 +0000 (12:31 +0200)]
Major reorganization, new maplib/indexlib/layoutlib hierarchy

New maplib (map creation routines), indexlib (index creation routines)
and layoutlib (page layout & rendering) structure. Besides moving
files around, a new layoutlib.commons module has been create to host
the mm to/from pt conversion routines.

7 years agoAjout de 'Lotissement' dans les préfixes français
Maxime Petazzoni [Tue, 7 Sep 2010 14:39:10 +0000 (16:39 +0200)]
Ajout de 'Lotissement' dans les préfixes français

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoSupport ps.gz output
David Decotigny [Sun, 5 Sep 2010 18:30:28 +0000 (20:30 +0200)]
Support ps.gz output

7 years agomore verbose
David Decotigny [Sun, 5 Sep 2010 18:28:28 +0000 (20:28 +0200)]
more verbose

7 years agopure cosmetics
David Decotigny [Sun, 5 Sep 2010 18:27:47 +0000 (20:27 +0200)]
pure cosmetics

7 years agoBetter index layout with small fonts + code more tolerant
David Decotigny [Sun, 5 Sep 2010 18:24:50 +0000 (20:24 +0200)]
Better index layout with small fonts + code more tolerant

When the small start to be small, avoid rounding errors (such as font
em = 0) by using floats as much as possible. And also try to signal
when the number of cols we draw is < expected, without raising an
exception.

7 years agoSupport for PNG output identical to PDF
David Decotigny [Sun, 5 Sep 2010 17:06:37 +0000 (19:06 +0200)]
Support for PNG output identical to PDF

This has not been so easy because:
 - we need some kind of scaling because by default 1 pt in PDF = 1 px
   in PNG... And we would prefer to have 1 pt in PDF = 300/72. px
   (assuming PNG is 300dpi)
 - we cannot call ctx.scale() before rendering the index because pango
   takes the transformation matrix into account when it chooses the
   font metrics. So with ctx.scale(), we could have the actual font
   metrics different from those computed in
   precompute_index_occupation() { which is called on a PDF surface by
   SinglePageRenderer::render() }.
 - we cannot render to a 72dpi vector surface (eg. PDF) and then
   project it with a scaling factor onto a 300 DPI PNG surface,
   because the result is ugly (pixelized)
 - we cannot push_group()/post_group().set_matrix(xx=factor,
   yy=factor=)/set_source() for the same reasons (pixelized)

So the solution we adopt is to trick pango into believing it is
rendering without any scale factor, which for us corresponds to a
72dpi resolution, and which for it corresponds to a 96 dpi cairo
resolution (see sources): this should always generate the same font
metrics as precompute_index_occupation() did. Then we tell it that the
cairo resolution, instead of being 96dpi as it assumes, is
96*desired_resolution/72. This is what this patch does.

One more note: we don't use an ImageSurface cairo surface for PNG
output because, for some other reason, it leads to different font
metrics. So, for PNG, we do use a PDF cairo surface !...

7 years agoDemonstrate rendering with all possible output formats
David Decotigny [Sun, 5 Sep 2010 10:39:33 +0000 (12:39 +0200)]
Demonstrate rendering with all possible output formats

7 years agoMinor index rendering fiexes + cosmetics + comments
David Decotigny [Sun, 5 Sep 2010 10:29:49 +0000 (12:29 +0200)]
Minor index rendering fiexes + cosmetics + comments

Fixed a trivial function name bug in __init__.py and a few index style
issues with the margins around the index. Added comments and reorder
the drawing operations to make sure the rectangle are printed last.

As a result, all 3 page layout renderer work in vector format... but
NOT in raster because the layout preparation is entirely based on
vector rendering engines even if the actual rendering engine is
raster... and both seem to handle font parameters differently.

7 years agoPrepared 3 renderers, out of which only SinglePageRendererNonIndex has been tested
David Decotigny [Sat, 4 Sep 2010 17:48:51 +0000 (19:48 +0200)]
Prepared 3 renderers, out of which only SinglePageRendererNonIndex has been tested

This patch defines a generic SinglePageRenderer renderer which is able
to render a single page without an index, with an index on the side
(on the right for non RTL languages, on the left for RTL) or with an
index at the bottom of the page. This generic renderer is subclassed
to define the SinglePageRendererNoIndex ("plain") class, the
SinglePageRendererIndexOnSide ("single_page_index_side") class,
SinglePageRendererIndexBottom ("single_page_index_bottom").

IMPORTANT: Only SinglePageRendererNoIndex has been tested and leads to
the exact same result as before. Chances are that the index rendering
doesn't work for raster cairo devices, because of the lack of DPI
support in the index rendering API.

The RenderingConfiguration has a new "i18n" field, setup by render()
and which replaces rtl: corresponds to the language used in the
rendering.

Added docstrings.

Note: the struct placeholder mechanism implemented in previous patch
has been dropped, in favor of a much cleaner API with only 2
parameters passed (w_dots, h_dots).

7 years agoMajor refactoring of the main rendering process
David Decotigny [Thu, 2 Sep 2010 21:43:24 +0000 (23:43 +0200)]
Major refactoring of the main rendering process

The RenderingSession system has disappeared in favor of a much simpler
ctor()/render() API for the Renderers. As a consequence, it's the job
of each renderer to create the grid, the map_canvas and the index
renderer (if any). But this is needed because the renderer is in
charge of the page layout, which impacts the way the map_canvas is
rendered and which depends on the index. Potentially every renderer
need to manage the chicken-and-egg problem in their own way. Of
course, now this ctor takes a street_index as parameter, which allows
it (by way of an index renderer) to update the global layout depending
on the size of the index.

For now only the PlainRenderer has been updated. It users an object
placeholder to replace the RenderingSession object. This object
placeholder allows one to define a set of attributes and to access
them through the standard dotted notation. This object has a meaning
only internally to the PlainRenderer::render(). We don't define a
global structure like RenderingSession in order not to pollute the
code with global names. And such an object placeholder is only a
private placeholder for render() and the function it calls, to avoid
having to write 6235 arguments to pass the helper functions it calls.

7 years agoUpdated doc and simpler object for StreetIndex objects
David Decotigny [Thu, 2 Sep 2010 19:20:39 +0000 (21:20 +0200)]
Updated doc and simpler object for StreetIndex objects

This patch makes the ctor args minimal for the StreetIndex indexer
objects, and also drops the ref to the DB after the object has been
created. Also cleans up the rendering process a bit (WIP, still).

7 years agoCan update the street index label according to the grid's location.
David Decotigny [Tue, 31 Aug 2010 20:39:46 +0000 (22:39 +0200)]
Can update the street index label according to the grid's location.

With this patch, the street index should now have its labels A1-B2
correct for the location of streets. The street indexer has a new
method apply_grid() that calls item.update_location_str(grid) so that
all the items have their location_str field correct. The items are
updated in-place: beware if multiple threads are manipulating a
StreetIndex object...

7 years agoDetermine the font size to use to render index in area.
David Decotigny [Tue, 31 Aug 2010 19:40:07 +0000 (21:40 +0200)]
Determine the font size to use to render index in area.

With this patch, it is now possible to specify different header/label
styles when contructing StreetIndexRenederer objects. This will allow
the renderer to use the first header/label font from this list that
allows to render the index into the specified area. For now the list
of possible header/label fonts is hard-coded as the default parameter
of the constructor.

7 years agoAdd the now required NaturalEarthData files for Mapnik
Maxime Petazzoni [Sun, 15 Aug 2010 20:00:35 +0000 (22:00 +0200)]
Add the now required NaturalEarthData files for Mapnik

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agowrite to csv reimplemented
David Decotigny [Sun, 15 Aug 2010 14:37:21 +0000 (16:37 +0200)]
write to csv reimplemented

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoendpoints must all be passed to index items ctor
David Decotigny [Sun, 15 Aug 2010 14:22:15 +0000 (16:22 +0200)]
endpoints must all be passed to index items ctor

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoGrid neutral localization of the amenities
David Decotigny [Sun, 15 Aug 2010 14:14:19 +0000 (16:14 +0200)]
Grid neutral localization of the amenities

As for the grid-neutral street index generation, with this patch we
compute the extension of each amenity with ST_LongestLine. This allows
to store geographic coordinates of the amenity in the index, hence
independent on any grid that might be used to locate them.

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoUpdated installation instructions for Lucid
David Decotigny [Sun, 15 Aug 2010 12:40:20 +0000 (14:40 +0200)]
Updated installation instructions for Lucid

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoUpdated to current commons Index API + random grid indices
David Decotigny [Sun, 15 Aug 2010 12:39:27 +0000 (14:39 +0200)]
Updated to current commons Index API + random grid indices

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoFixed missing dep
David Decotigny [Sun, 15 Aug 2010 12:38:54 +0000 (14:38 +0200)]
Fixed missing dep

Signed-off-by: David Decotigny <david@decotigny.fr>
7 years agoCosmetic information message for unit tests
David Decotigny [Mon, 9 Aug 2010 10:42:22 +0000 (12:42 +0200)]
Cosmetic information message for unit tests

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoProvide a mock for gettext ('_') in unit test
David Decotigny [Mon, 9 Aug 2010 10:41:25 +0000 (12:41 +0200)]
Provide a mock for gettext ('_') in unit test

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoMap street paths onto grid, pass 1
David Decotigny [Mon, 9 Aug 2010 10:33:44 +0000 (12:33 +0200)]
Map street paths onto grid, pass 1

To map the street paths onto a Grid, we proceed in 2 passes since the
grid is not known before the streets are determined (size of the
rendered bbox depends on the number of streets => grid position over
the city's rendering is not fixed). This patch allows to optimize the
number of GIS queries: we only need to perform them in pass 1.

First pass gets the positions of the most distant points from the
street. This is what this patch implements. The second pass will then
map these points onto the grid.

This patch also changes the IndexItem structure to include the 2 most
distant endpoints of the item.

We only deal with the streets for now. The code for amenities is dummy
at that point; we'll work on this later.

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoSimple API for 2D Points
David Decotigny [Mon, 9 Aug 2010 10:28:00 +0000 (12:28 +0200)]
Simple API for 2D Points

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoMore cleanup
Maxime Petazzoni [Sun, 8 Aug 2010 10:35:48 +0000 (12:35 +0200)]
More cleanup

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoProvide a unified way to get bounding box and contour from OSM IDs
Maxime Petazzoni [Sun, 8 Aug 2010 10:07:56 +0000 (12:07 +0200)]
Provide a unified way to get bounding box and contour from OSM IDs

The new get_geographic_info method in OCitySMap allows one to query the
PostGIS database for the commonly-needed geographic information about a
set of OSM IDs.

This is used by OCitySMap itself, of course, for map rendering when it
needs to find the bounding box and contour of the requested OSM ID. This
will also be used by the Nominatim search gateway in MapOSMatic in the
near future.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoImprove OCitySMap's API and documentation
Maxime Petazzoni [Sun, 8 Aug 2010 09:30:54 +0000 (11:30 +0200)]
Improve OCitySMap's API and documentation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agofixed todo + dead code
David Decotigny [Sun, 8 Aug 2010 07:41:41 +0000 (09:41 +0200)]
fixed todo + dead code

7 years agoFix compatible paper size calculation
Maxime Petazzoni [Sun, 8 Aug 2010 07:35:33 +0000 (09:35 +0200)]
Fix compatible paper size calculation

The compatible paper size calculation in the PlainRenderer was not
properly using the returned result of BoundingBox.spheric_size(): the
width and height were switched, resulting in wrong chosen paper
orientations and sizes.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoSplit index rendering into 2 steps
David Decotigny [Sat, 7 Aug 2010 19:33:41 +0000 (21:33 +0200)]
Split index rendering into 2 steps

We split the index rendering phase into 2 steps:
 - first pre-position the index and precompute its size
 - this will allow the main page renderer to prepare the page layout,
   place the grid and computhe the exact "square locations" in the index
 - render the actual index, with the actual square positions (eg. A1,
   B2, etc.)

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoIntegrate street index api + tests
David Decotigny [Sat, 7 Aug 2010 18:28:40 +0000 (20:28 +0200)]
Integrate street index api + tests

7 years agoFixed layout for RTL languages
David Decotigny [Sat, 7 Aug 2010 18:23:16 +0000 (20:23 +0200)]
Fixed layout for RTL languages

With RTL languages, ALIGN_RIGHT is interpreted as ALIGN_LEFT by
default in the layout objects, but only when the text is "strongly"
RTL (eg. arabic only, no western text intermixed). This breaks the
asumptions we made for our layout of the index streets. This patch
tells the pango layout manager to ignore this and always interpret
ALIGN_RIGHT as ALIGN_RIGHT.

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoCosmetics: nicer use of coords API
David Decotigny [Sat, 7 Aug 2010 18:22:02 +0000 (20:22 +0200)]
Cosmetics: nicer use of coords API

We use BoundingBox::as_wkt() to build the surrounding rectangle for
the shade.

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoWIP-2: render index from DB, no grid
David Decotigny [Sat, 7 Aug 2010 17:23:04 +0000 (19:23 +0200)]
WIP-2: render index from DB, no grid

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoStarting cleanup of the renderer code
Maxime Petazzoni [Sat, 7 Aug 2010 19:37:46 +0000 (21:37 +0200)]
Starting cleanup of the renderer code

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoUpdate i18n support for OCitySMap 2
Maxime Petazzoni [Sat, 7 Aug 2010 18:46:07 +0000 (20:46 +0200)]
Update i18n support for OCitySMap 2

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMore work on the plain renderer
Maxime Petazzoni [Sat, 7 Aug 2010 18:45:20 +0000 (20:45 +0200)]
More work on the plain renderer

Fix the automatic font size calculation for the title and the copyright
notice.

Fix the placement, size and display of the copyright notice.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoImproving the plain renderer's layout
Maxime Petazzoni [Sat, 7 Aug 2010 17:06:56 +0000 (19:06 +0200)]
Improving the plain renderer's layout

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoHigher definition OSM logo
Maxime Petazzoni [Sat, 7 Aug 2010 17:06:08 +0000 (19:06 +0200)]
Higher definition OSM logo

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoCleanup and documentation
Maxime Petazzoni [Sat, 7 Aug 2010 12:12:25 +0000 (14:12 +0200)]
Cleanup and documentation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoWIP-1: basig get_streets query
David Decotigny [Sat, 7 Aug 2010 12:39:07 +0000 (14:39 +0200)]
WIP-1: basig get_streets query

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoCosmetic refactoring of coords api
David Decotigny [Sat, 7 Aug 2010 12:35:53 +0000 (14:35 +0200)]
Cosmetic refactoring of coords api

Basic changes:
 - new as_wkt() method that returns a WKT for the current bounding box
 - renamed self.ptstr -> _ptstr
 - renamed parse -> parse_latlon_strtuple

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoCosmetic refactoring: code sharing for drawing primitives
David Decotigny [Sat, 7 Aug 2010 11:18:59 +0000 (13:18 +0200)]
Cosmetic refactoring: code sharing for drawing primitives

7 years agoUnit test uses relative paths for config files
David Decotigny [Sat, 7 Aug 2010 11:16:54 +0000 (13:16 +0200)]
Unit test uses relative paths for config files

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoRearranged files and sources for index rendering
David Decotigny [Sat, 7 Aug 2010 10:39:39 +0000 (12:39 +0200)]
Rearranged files and sources for index rendering

Signed-off-by: David Decotigny <d2@maposmatic.org>
7 years agoCleanup and documentation
Maxime Petazzoni [Sat, 7 Aug 2010 09:52:39 +0000 (11:52 +0200)]
Cleanup and documentation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMerge branch 'master' into ocitysmap2
Maxime Petazzoni [Sat, 7 Aug 2010 07:54:00 +0000 (09:54 +0200)]
Merge branch 'master' into ocitysmap2

7 years agoRe-integrating index data requests
Maxime Petazzoni [Sat, 7 Aug 2010 07:49:12 +0000 (09:49 +0200)]
Re-integrating index data requests

Start working on re-integrating the SQL queries to feed the index (not
functional right now).

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoPoint Norvegian Bokmål to the generic i18n layer
Maxime Petazzoni [Sat, 7 Aug 2010 07:44:57 +0000 (09:44 +0200)]
Point Norvegian Bokmål to the generic i18n layer

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoChange how the configuration files path are passed to OCitySMap
Thomas Petazzoni [Fri, 6 Aug 2010 13:36:56 +0000 (15:36 +0200)]
Change how the configuration files path are passed to OCitySMap

Instead of having to pass a list, we can now also pass just a single
string or None, in which case a default set of config file paths will
be tried.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@enix.org>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoRemove admin_level=8 from the admin_city_names index
Maxime Petazzoni [Sat, 7 Aug 2010 06:53:29 +0000 (08:53 +0200)]
Remove admin_level=8 from the admin_city_names index

As we no longer restrict rendering to administrative boundaries of
level 8, rework the index for city name lookups.

NOTE: if you have an existing PostGIS database, you will need to
recreate the index. First, remove the existing one with:
`DROP INDEX admin_city_names` then re-create it with the
`CREATE INDEX ...` statement from ocitysmap-init.sql.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoImplement street index layout
Maxime Petazzoni [Fri, 6 Aug 2010 22:22:03 +0000 (00:22 +0200)]
Implement street index layout

Implement all functionality for rendering the index in a specified
graphical area. The index automatically shrinks to the minimum space it
needs by adjusting one of the dimension (passed as a parameter).

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoFix how the best fit paper size is returned
Maxime Petazzoni [Fri, 6 Aug 2010 15:30:51 +0000 (17:30 +0200)]
Fix how the best fit paper size is returned

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoBetter handling of portrait/landscape orientation
Maxime Petazzoni [Fri, 6 Aug 2010 11:00:30 +0000 (13:00 +0200)]
Better handling of portrait/landscape orientation

The compatible paper sizes no return 5-uples that specify if the
provided bounding box fits in portrait and/or in landscape mode.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoFix PNG rendering
Maxime Petazzoni [Fri, 6 Aug 2010 10:04:20 +0000 (12:04 +0200)]
Fix PNG rendering

The layout renderers now work in a unitless fashion where dimensions are
expressed in "dots". A RenderingSession object defines and stores how
dots are obtained from typographic/printing points depending on the
provided DPI.

The DPI for vector-based surfaces is set to 72, because a typographic
point is 1/72th of an inch. For PNG surfaces, its value is configurable
in the OCitySMap configuration as 'png_dpi' in the 'rendering' section.
It defaults to 300dpi.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoAdd Norvegian Bokmål translation
Maxime Petazzoni [Fri, 6 Aug 2010 08:45:56 +0000 (10:45 +0200)]
Add Norvegian Bokmål translation

Adds the OCitySMap translation in Bokmål (nb) contributed by Hans F.
Nordhaug.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMove the OSM logo
Maxime Petazzoni [Fri, 6 Aug 2010 08:42:53 +0000 (10:42 +0200)]
Move the OSM logo

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoUpdate the OCitySMap config template for version 2
Maxime Petazzoni [Fri, 6 Aug 2010 08:09:22 +0000 (10:09 +0200)]
Update the OCitySMap config template for version 2

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoAutomatic portrait/landscape orientation
Maxime Petazzoni [Fri, 6 Aug 2010 06:39:21 +0000 (08:39 +0200)]
Automatic portrait/landscape orientation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoLazy database connection in OCitySMap
Maxime Petazzoni [Thu, 5 Aug 2010 21:52:40 +0000 (23:52 +0200)]
Lazy database connection in OCitySMap

Only connect to the PostGIS datasource when needed so OCitySMap objects
can be instancied and used without connecting to the database if it is
not required.

Remove some debugging messages, and tweaks to the layout renderers
registry.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoDeprecate the original OCitySMap module
Maxime Petazzoni [Thu, 5 Aug 2010 21:52:35 +0000 (23:52 +0200)]
Deprecate the original OCitySMap module

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoIgnore .pyc files in OCitySMap 2
Maxime Petazzoni [Thu, 5 Aug 2010 17:39:33 +0000 (19:39 +0200)]
Ignore .pyc files in OCitySMap 2

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoCleanup and documentation
Maxime Petazzoni [Thu, 5 Aug 2010 15:47:09 +0000 (17:47 +0200)]
Cleanup and documentation

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoAdd a custom, fitted paper format
Maxime Petazzoni [Thu, 5 Aug 2010 15:03:04 +0000 (17:03 +0200)]
Add a custom, fitted paper format

When returning the list of compatible paper sizes for the provided
bounding box, add a custom format that is exactly fitted to the bounding
box if the user doesn't want one of the preset paper sizes.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoImplement stylesheet configuration parsing and registry
Maxime Petazzoni [Thu, 5 Aug 2010 14:58:55 +0000 (16:58 +0200)]
Implement stylesheet configuration parsing and registry

Parse the stylesheet definitions (we'll support several Mapnik
stylesheets, eventually from contributors) from the OCitySMap
configuration file. Provide a registry to list and access them.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoImplement a renderers registry in the renderers module
Maxime Petazzoni [Thu, 5 Aug 2010 14:18:28 +0000 (16:18 +0200)]
Implement a renderers registry in the renderers module

OCitySMap now provides a quick public API to get the list of all
implemented layout renderers, or to get one directly by name. Renderer
classes are returned, not instances.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoDraw grid labels in the PlainRenderer
Maxime Petazzoni [Thu, 5 Aug 2010 11:51:32 +0000 (13:51 +0200)]
Draw grid labels in the PlainRenderer

Grid labels (letters horizontally, numbers vertically) are now drawn
directly in Cairo. The plain renderer draws them outside of the map area
in a small margin. Other renderers may choose to do otherwise (directly
on the map area, not displaying them at all, etc.).

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoRe-implement the grey shading
Maxime Petazzoni [Wed, 4 Aug 2010 22:47:07 +0000 (00:47 +0200)]
Re-implement the grey shading

When rendering an administrative boundary, we overlay a transparent grey
shade around the city.

A WKT MULTIPOLYGON is created from the corrected bounding box and the
administrative boundary (as an inner hole). A shape file is then created
from this polygon and added to the rendering.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMake the OCitySMap object actually render maps
Maxime Petazzoni [Wed, 4 Aug 2010 21:21:37 +0000 (23:21 +0200)]
Make the OCitySMap object actually render maps

Integrate the main OCitySMap object to the layout renderers so it can
render maps. Renderers now work in typographic points.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoAutomatically adapt the geographical bounding box to the paper size
Maxime Petazzoni [Wed, 4 Aug 2010 17:36:45 +0000 (19:36 +0200)]
Automatically adapt the geographical bounding box to the paper size

After a compatible paper has been chosen, the geographic bounding box
requested for rendering (or the bounding box of the administrative
boundary requested) doesn't fill the paper entirely. The bounding box is
thus extented by Mapnik into a corrected bounding box, corresponding
exactly to what is rendered on the paper.

The bounding box used by the Grid object is also slightly expanded to
accomodate for the small imprecisions of the various projections, which
made the grid lines not fill the bounding box entirely.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoContinue heavy work on OCitySMap 2
Maxime Petazzoni [Wed, 4 Aug 2010 14:34:15 +0000 (16:34 +0200)]
Continue heavy work on OCitySMap 2

Re-implement configuration file parsing to get access to the database.
The request timeout is now configurable in the 'datasource'
configuration section as 'request_timeout'. It defaults to 15 minutes.

Re-integrate the i18n and languages support.

Re-implement the map grid support. From the corrected geographical
bounding box, the Grid object can generate an ESRI Shapefile with the
grid lines. The grid size automatically adjusts to lower sizes if the
bounding box is smaller.

Stub implementation of the StreetIndex object that will handle data
gathering, outputting as CSV and rendering into a given surface.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoFoundation for the new OCitySMap rendering module
Maxime Petazzoni [Tue, 3 Aug 2010 22:10:06 +0000 (00:10 +0200)]
Foundation for the new OCitySMap rendering module

This new OCitySMap version aims at providing a more print-oriented
map rendering engine.

Its main features include being aware of paper sizes and constraints,
but also providing different "renderers" implementing rendering layouts
for the maps. For now, only the PlainRenderer which renderers a
full-page map is implemented, but renderers that also generate an index
will be available.

The main idea is that we no longer generate a separate index. The
generated map includes (or not) an index depending on the rendering
layout used to render it.

Finally, each renderer is able to tell which paper sizes are compatible
with the bounding box from a "geographic" resolution.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoUpdate INSTALL procedure for Unifont
Thomas Petazzoni [Tue, 3 Aug 2010 08:06:47 +0000 (10:06 +0200)]
Update INSTALL procedure for Unifont

In order to get proper rendering of Korean, Chinese, Japanese and
probably other "special" characters, the unifont font must be
enabled. This patch updates the INSTALL procedure to :

 * Install the ttf-unifont package

 * Patch Mapnik so that it recursively searches for fonts

 * Compile Mapnik with SYSTEM_FONTS=/usr/share/fonts

 * Modify the mapnik-osm configuration file to enable the usage of
   unifont

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoStreets and amenities queries optimization
Maxime Petazzoni [Mon, 21 Jun 2010 11:09:13 +0000 (13:09 +0200)]
Streets and amenities queries optimization

NOTE: this optimization requires GEOS >= 3.2 and still doesn't support
cities with enclaves.

This commits introduces a previously discussed query optimization for
getting the streets and amenities. The corresponding discussion can be
found in the archives at:
http://lists.nongnu.org/archive/html/maposmatic-dev/2010-02/msg00210.html
and on the wiki at
http://wiki.maposmatic.org/doku.php?id=dev:request_optimization

The idea is to pre-compute the POLYGON() of the city or area we are
rendering and put it directly in the query. This removes a JOIN and a
CASE from the query, and also allows for some nice code refactoring
since we no longer have to differenciate between get_streets_by_name and
get_streets_by_osmid (same for amenities), it's all based on this
pre-calculated POLYGON area.

On my machine, getting the streets for Paris is amazingly fast:

2010-06-21 13:08:28,352 INFO(maposmatic:8965): Getting streets...
2010-06-21 13:08:31,487 DEBUG(maposmatic:8965): Got streets (5107).

While it takes several minutes without this change. The rendering
process is now mostly CPU-bound during the actual map rendering with
Mapnik, and PostgreSQL is no longer the main bottleneck during a
rendering.

We can also now get rid of the cities_area_by_name and
cities_area_by_osmid views, and also perform a small optimization on the
contour request.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoFix Plural-Forms gettext header for Catalan
Maxime Petazzoni [Wed, 30 Jun 2010 13:48:05 +0000 (15:48 +0200)]
Fix Plural-Forms gettext header for Catalan

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoGerman prefix rules
Maxime Petazzoni [Tue, 11 May 2010 15:10:51 +0000 (17:10 +0200)]
German prefix rules

Adds the German prefix rules, provided by an anonymous contributor in
bug #29259.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoAdded some more French prefixes
Maxime Petazzoni [Fri, 11 Jun 2010 15:23:09 +0000 (17:23 +0200)]
Added some more French prefixes

Adds the following prefixes for French (and Catalan for cities with
French names):

  * Accès
  * Autoroute
  * Barrage
  * Cavée
  * Coin
  * Descente
  * Escalier(s)
  * Funiculaire
  * Jardin(s)
  * Môle
  * Rampe
  * Rang
  * Sente
  * Terre-Plein
  * Télécabine
  * Tunnel
  * Virage

Also added "aux" in the determinents for French ("Rue aux Juifs" for
example).

This closes support question sr#107392.

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoMissing datetime import for dynamic copyright notice
Maxime Petazzoni [Thu, 25 Mar 2010 18:28:18 +0000 (19:28 +0100)]
Missing datetime import for dynamic copyright notice

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
7 years agoDynamic copyright notice, everywhere
Maxime Petazzoni [Sat, 20 Mar 2010 14:48:36 +0000 (15:48 +0100)]
Dynamic copyright notice, everywhere

Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>