Commit graph

8993 commits

Author SHA1 Message Date
Rich Wareham
16ffdf1fb5 python plugin: remove useless Makefile 2012-07-31 17:07:11 +01:00
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
artemp
d7d833dd13 + cleanup/small fixes 2012-07-31 13:31:22 +01:00
artemp
c7af665cc7 + process SEG_CLOSE 2012-07-31 10:59:09 +01:00
artemp
76569cccb8 + select clipper based on geometry type
+ process SEG_CLOSE command
2012-07-31 10:57:42 +01:00
artemp
a3b7d07da0 + select clipper based on geometry type 2012-07-31 10:56:13 +01:00
Dane Springmeyer
39a1477eb2 allow marker-width and marker-height to apply directly to ellipse rx/ry - maintaining ability to precisely control ellipse dimensions, combine with transforms, and avoid scaling line-widths - refs #1348 and #1347 2012-07-30 23:20:20 -07:00
Dane Springmeyer
e69c6037b7 mapnik coding style 2012-07-30 23:07:12 -07:00
Dane Springmeyer
e482998c51 rename path_ptr to the more explicit svg_path_ptr and set up markers_symbolizer rendering for upcoming changed 2012-07-30 21:45:46 -07:00
Dane Springmeyer
0d97b851fa markers: support opacity on bitmaps, and move to supporting both opacity and fill-opacity 2012-07-30 18:31:21 -07:00
Dane Springmeyer
6f174287a2 amend 822531a which broke polygon geometry labeling - refs #1350 2012-07-30 18:29:26 -07:00
Dane Springmeyer
e6e7b4c700 svg2png: inflate the rendering canvas to avoid edge affect for 100% w/h svgs 2012-07-30 16:37:34 -07:00
Dane Springmeyer
1a6cbfb568 fix xml comment 2012-07-30 15:54:08 -07:00
Dane Springmeyer
ce7b6a93fb Add test case for #1354 2012-07-30 14:48:32 -07:00
artemp
b963b6c2b3 Merge remote-tracking branch 'origin' 2012-07-30 18:35:03 +01:00
artemp
822531a114 + filter on geometry type to use centroid (Polygon) or
middle_point (LineString) label placement
2012-07-30 18:32:42 +01:00
artemp
8931509adc + move middle_point into label namespace 2012-07-30 18:31:15 +01:00
Hermann Kraus
5fedfc8a52 Fix problem with python tests. 2012-07-30 01:25:21 +02:00
Hermann Kraus
19ed8718a3 Fix test crashes when reference image doesn't exists.
Refs #1296 and commit 269569250c
2012-07-29 01:47:16 +02:00
Dane Springmeyer
81937f7317 only allow restyling of svg paths that already have visible display of stroke/fill 2012-07-28 09:27:37 -07:00
Dane Springmeyer
e213f49d7c re-implement conditional stroke application in markers_symbolizer initially added in 9d756165e0, amended in 9f064960e3, and wrongly disabled in bd74d18f6d 2012-07-27 19:21:46 -07:00
Dane Springmeyer
4340e9a605 scons: fixup LIBDIR value settings - closes #1349 2012-07-27 10:56:24 -07:00
artemp
03422de504 + close polygons (SEG_CLOSE) 2012-07-26 15:51:10 +01:00
artemp
fe4cfea536 + add call to close_path() if SEG_CLOSE 2012-07-26 15:49:58 +01:00
artemp
1b805abc23 + add close(x,y) method to geometry 2012-07-26 15:21:25 +01:00
artemp
ec2d0cc210 + wkb reader : close polygons 2012-07-26 15:20:56 +01:00
artemp
618bc1ba0f + close polygon 2012-07-26 15:20:23 +01:00
artemp
1844217615 + fix SEG_CLOSE value to be compatible with agg 2012-07-26 15:19:11 +01:00
artemp
4ddddba254 + use pre-increment op 2012-07-26 11:58:48 +01:00
artemp
690b56a511 + use std::auto_ptr 2012-07-26 11:57:41 +01:00
artemp
07ec5c31d0 + turns off white space skipping 2012-07-26 11:45:34 +01:00
Dane Springmeyer
4fbe353d4a make stock ellipse a true ellipse 2012-07-25 19:29:43 -07:00
Dane Springmeyer
bd74d18f6d no need anymore to have parse_stroke return a bool 2012-07-25 18:26:34 -07:00
Dane Springmeyer
9f064960e3 load_map: a stroke-width=0 is valid for markers now (for restyling svg) 2012-07-25 18:19:41 -07:00
Dane Springmeyer
5bd0bec0e9 add render target 2012-07-25 16:58:45 -07:00
Dane Springmeyer
827b015d15 add a geometry collection to csv wkt test 2012-07-25 16:57:47 -07:00
Dane Springmeyer
3da72ff8cb unmask failing test - refs #1345 2012-07-25 16:37:05 -07:00
Dane Springmeyer
4ad15db23d collect attribute descriptions in geojson plugin (TODO: sorting of attributes is returned in reverse order) 2012-07-25 16:11:51 -07:00
Dane Springmeyer
27e9068ccf add test map for colorize-alpha comp-op 2012-07-25 15:04:07 -07:00
Dane Springmeyer
d63cf684dd update changelog with geometry filter support as per #546 2012-07-25 14:56:28 -07:00
Dane Springmeyer
fa052c5021 amend 516f7c7 to suport filtering on collections and rename line to linestring for consistency - refs #546 2012-07-25 14:43:32 -07:00
Dane Springmeyer
b298e21f8e add test for #997- closes #997 2012-07-25 13:16:46 -07:00
Dane Springmeyer
cc8f86e873 ensure simple invalid inputs to wkb do not crash - closes #1333 2012-07-25 11:14:23 -07:00
Dane Springmeyer
2680f941eb clean up unused code and includes 2012-07-25 09:31:57 -07:00
Dane Springmeyer
6df998cf39 fixup various plugin includes 2012-07-25 09:29:21 -07:00
Dane Springmeyer
4e60c0cc9b Merge branch 'master' of github.com:mapnik/mapnik 2012-07-25 08:47:19 -07:00
Dane Springmeyer
b68ea3bb1d new patch from @lightmare for protecting against expression.to_string misusage - closes #1232 2012-07-25 08:47:10 -07:00
artemp
774e1b1d77 + avoid applying scaling_factor twice for raster markers
+ cleanup
2012-07-25 11:43:43 +01:00
artemp
e48057b274 + remove unused member variable
+ format
2012-07-25 10:00:58 +01:00
artemp
f0ada2b284 + remove colorizer (@springmeyer - was it intentional?) 2012-07-25 10:00:08 +01:00