mapnik/bindings/python
Rich Wareham 156a7590f4 python: a new plugin to use arbitrary Python as a data source
This plugin allows you to write data sources in the Python programming language.
This is useful if you want to rapidly prototype a plugin, perform some custom
manipulation on data or if you want to bind mapnik to a datasource which is most
conveniently accessed through Python.

The plugin may be used from the existing mapnik Python bindings or it can embed
the Python interpreter directly allowing it to be used from C++, XML or even
JavaScript.

Mapnik already has excellent Python bindings but they only directly support
calling *into* mapnik *from* Python. This forces mapnik and its input plugins to
be the lowest layer of the stack. The role of this plugin is to allow mapnik to
call *into* Python itself. This allows mapnik to sit as rendering middleware
between a custom Python frontend and a custom Python datasource. This increases
the utility of mapnik as a component in a larger system.

There already exists MemoryDatasource which can be used to dynamically create
geometry in Python. It suffers from the problem that it does not allow
generating only the geometry which is seen by a particular query. Similarly the
entire geometry must exist in memory before rendering can progress. By using a
custom iterator object or by using generator expressions this plugin allows
geometry to be created on demand and to be destroyed after use. This can have a
great impact on memory efficiency. Since geometry is generated on-demand as
rendering progresses there can be arbitrarily complex 'cleverness' optimising
the geometry generated for a particular query. Obvious examples of this would
be generating only geometry within the query bounding box and generating
geometry with an appropriate level of detail for the output resolution.
2012-07-31 17:05:27 +01:00
..
mapnik python: a new plugin to use arbitrary Python as a data source 2012-07-31 17:05:27 +01:00
mapnik2 switch back from mapnik2 to mapnik 2011-11-23 11:33:58 +00:00
build.py simplify boost_python library configure checks 2012-07-05 11:54:43 -07:00
mapnik_color.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_coord.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_datasource.cpp - improved again the logging facilities 2012-04-09 03:00:51 +02:00
mapnik_datasource_cache.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_enumeration.hpp code formatting 2011-11-13 19:54:32 -08:00
mapnik_envelope.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_expression.cpp fix/prevent to_expression_string misuse #985 2012-05-29 22:53:39 +02:00
mapnik_feature.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_featureset.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_font_engine.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_fontset.cpp whitespace fixes (using format_source_files.sh) 2012-02-01 17:30:26 -08:00
mapnik_gamma_method.cpp whitespace fixes (using format_source_files.sh) 2012-02-01 17:30:26 -08:00
mapnik_geometry.cpp avoid compiler warning on unsigned/signed comparison 2012-06-26 11:23:26 -07:00
mapnik_grid.cpp avoid compiler warning on unsigned/signed comparison 2012-06-26 11:23:26 -07:00
mapnik_grid_view.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_image.cpp use mapnik.Image for visual tests - closes #1296 2012-07-06 17:44:15 -07:00
mapnik_image_view.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_inmem_metawriter.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_label_collision_detector.cpp code formatting 2011-11-13 19:54:32 -08:00
mapnik_layer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_line_pattern_symbolizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_line_symbolizer.cpp restore the fast line rasterizer (rasterizer_outline_aa) and improve its rendering quality and consistency with standard method - refs #873 2012-05-11 17:40:21 -07:00
mapnik_logger.cpp reflect the mapnik.logger types in python 2012-04-13 17:52:13 -07:00
mapnik_map.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_markers_symbolizer.cpp implement built in support for ellipse and arrow markers, make markers_symbolizer default to POINT placement and ellipse drawing, add back compatibility for deprecated marker-type property - refs #1285 and #1304 2012-07-10 22:38:53 -07:00
mapnik_palette.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_parameters.cpp - finish thrashing all the useless ifdef MAPNIK_LOG 2012-04-09 21:41:56 +02:00
mapnik_point_symbolizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_polygon_pattern_symbolizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_polygon_symbolizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_proj_transform.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_projection.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_python.cpp expose ability to clear global caches in python - closes #1022 2012-07-10 09:36:08 -07:00
mapnik_query.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_raster_colorizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_raster_symbolizer.cpp rollback 34c3128b0c, move 'scaling' to proper enum, and move image_scaling functions to new cpp/hpp 2012-07-06 16:45:58 -07:00
mapnik_rule.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_scaling_method.cpp add missing file 2012-07-06 18:39:59 -07:00
mapnik_shield_symbolizer.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_stroke.cpp implement new debug system 2012-04-08 02:20:56 +02:00
mapnik_style.cpp fix docstring for Style.filter_mode 2012-05-01 23:28:58 -04:00
mapnik_svg.hpp split parse_transform.hpp, set dynamic transform expression from python 2012-06-07 17:06:45 +02:00
mapnik_symbolizer.cpp Merge branch 'master' into compositing 2012-05-01 12:35:49 +01:00
mapnik_text_placement.cpp avoid compiler warning on unsigned/signed comparison 2012-06-26 11:23:26 -07:00
mapnik_threads.hpp apply mapnik_format.el formatting 2012-03-13 07:59:22 -07:00
mapnik_value_converter.hpp python: fix leaky Py_None return by calling Py_INCREF(Py_None) before returning - closes #1221 2012-05-18 13:22:51 -07:00
mapnik_view_transform.cpp implement new debug system 2012-04-08 02:20:56 +02:00
python_cairo.cpp implement new debug system 2012-04-08 02:20:56 +02:00
python_grid_utils.hpp + define keys container in client code not in grid/grid_view, 2012-07-12 10:57:57 +01:00
python_optional.hpp implement new debug system 2012-04-08 02:20:56 +02:00