Commit graph

338 commits

Author SHA1 Message Date
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
Rich Wareham
ee7ebb61f2 SConstruct: trivial typo fix 'henche' -> 'hence' 2012-07-19 16:08:25 +01:00
Dane Springmeyer
b74738dd91 scons: make a failure to link boost_python non-fatal 2012-07-06 18:31:36 -07:00
Dane Springmeyer
17d3414b7a speed up scons by > 2x 2012-07-06 18:08:19 -07:00
Dane Springmeyer
3ddd38116c Merge branch 'master' of github.com:mapnik/mapnik 2012-07-06 11:54:04 -07:00
Dane Springmeyer
6e5a68f372 stop defaulting to lib64 on 64 bit unix systems - closes #1297 2012-07-06 11:35:29 -07:00
Dane Springmeyer
18d2c041b5 respect BOOST_APPEND for boost_python configure check 2012-07-06 07:48:23 -07:00
Dane Springmeyer
906de8e317 simplify boost_python library configure checks 2012-07-05 11:54:43 -07:00
Dane Springmeyer
c113fa8adb scons: no need to link python and be more concise about restoring env backup 2012-06-15 14:05:59 -04:00
Dane Springmeyer
5df056ae4c scons: expose CUSTOM_CFLAGS to enable custom CFLAGS to be used during the configure stage 2012-06-13 17:17:58 -04:00
Dane Springmeyer
fa46f97b73 Merge branch 'master' of github.com:mapnik/mapnik 2012-06-13 17:10:27 -04:00
Dane Springmeyer
30559a0610 scons: also set LINKFLAGS/LDFLAGS up front to ensure they are used in configure checks 2012-06-13 17:10:15 -04:00
Artem Pavlenko
e89eb99e28 + geojson input plugin (thanks, @tmcw!) 2012-06-13 13:30:58 +01:00
Dane Springmeyer
b7052029d8 start requiring >= boost 1.47 to enable things like the carto parser to be integrated soon 2012-05-24 17:07:56 -07:00
Dane Springmeyer
09426bf324 remove option to link againt external AGG - our local copy has critical fixes and is required 2012-05-24 17:05:51 -07:00
kunitoki
0e5dcbd810 - fixed unwanted behaviour with default log severity in SConstruct #937 2012-05-24 00:02:43 +02:00
Dane Springmeyer
0ccabf2650 whitespace 2012-04-26 19:57:03 -04:00
Dane Springmeyer
b34e0c02a6 the osm plugin is required now for visual tests to enable it by default 2012-04-19 11:27:33 -07:00
Dane Springmeyer
c33fdfd848 disable logging on by default until #1175 is resolved (refs #1175) 2012-04-11 18:08:11 -07:00
Dane Springmeyer
4d4316f7bc enable logging by default to maintain relatively similiar warning behavior as to pre-logging framework (TODO: perf testing) 2012-04-11 11:32:04 -07:00
kunitoki
0cc1dfdf44 Merge branch 'master' of github.com:mapnik/mapnik 2012-04-10 17:51:48 +02:00
kunitoki
47e847cde1 - get rid of setting logger format in CXXFLAGS 2012-04-10 17:51:20 +02:00
Dane Springmeyer
330504e9a4 enable building svg2png tool - refs #1137 2012-04-10 08:47:48 -07:00
kunitoki
81c9dd7b6b - added the ability to set the default global severity from scons configure
- initial check in of setting global severity from getenv (todo)
2012-04-10 16:19:51 +02:00
kunitoki
c31d4b69a1 - avoid using -rdynamic on compilers different than gcc 2012-04-10 11:21:31 +02:00
Dane Springmeyer
566ae578bb scons: do not use -rdynamic flag on os x 2012-04-07 17:55:41 -07:00
kunitoki
af201551b8 got rid of old CVS $Id comments kludge in files 2012-04-08 02:45:01 +02:00
kunitoki
1f351e0e09 implement new debug system 2012-04-08 02:20:56 +02:00
Dane Springmeyer
ba4d815972 compile the c++ demo by default 2012-04-04 15:20:18 -07:00
Dane Springmeyer
e22e47dfcc scons: when statically linking: link extra icu libs needed by regex 2012-03-27 19:14:01 -04:00
Dane Springmeyer
3b498efbd9 fixup font registration code ensuring invalid fonts will warn but not throw and register_fonts will only return success if > one font is registered and none have failed 2012-03-23 15:07:28 -07:00
Dane Springmeyer
0beca49b2a scons: when parsing xml2-config only pull --cflags to avoid uneeded pollution of other libs on osx (namely libicucore) 2012-03-21 15:38:32 -07:00
Dane Springmeyer
2abe02bd96 make available MAPNIK_VERSION_STRING in c++ header (not just in python) and add MAPNIK_VERSION_IS_RELEASE define that indicates if the code is released 2012-03-14 18:30:32 -07:00
Artem Pavlenko
254b3c9fa7 Merge branch 'master' into geometry-clipping
Conflicts:
	SConstruct
	include/mapnik/symbolizer_helpers.hpp
	src/placement_finder.cpp
2012-03-09 14:18:41 +00:00
Dane Springmeyer
54e7bb41c6 add no-omit-frame-pointer to debug flags to ensure without question it is not enabled 2012-03-09 12:56:00 +00:00
Dane Springmeyer
c5c0f92247 save the maps in the right place for visual tests 2012-03-08 17:04:51 -08:00
Dane Springmeyer
c47dae692a add no-omit-frame-pointer to debug flags to ensure without question it is not enabled 2012-03-07 15:34:59 -08:00
Dane Springmeyer
03bfc015a6 DEBUG_UNDEFINED should also trap illegal instructions 2012-02-21 11:04:09 -08:00
Dane Springmeyer
1b3d2324de scons: fully workaround potential compile error with gcc/boost 1.42/ubuntu relating to interprocess bug - refs #1001 and #950 2012-01-08 17:21:04 -08:00
Dane Springmeyer
9b859bbc81 scons: pass boost version through env 2012-01-08 17:13:19 -08:00
Dane Springmeyer
556bc2c869 remove special ltdl dladvise usage - no longer needed after #790 2011-12-06 18:23:01 -08:00
Dane Springmeyer
1700ffe9cf remove svn revision reporting as it is not longer relevant to git versioned mapnik 2011-12-06 16:52:50 -08:00
Artem Pavlenko
14700dba16 switch back from mapnik2 to mapnik
add mapnik2 module which redirects to mapnik and issues DeprecationWarning
2011-11-23 11:33:58 +00:00
Dane Springmeyer
62041bfd77 scons: merge path replace functionality from tilemill build branch - useful for ensuring quality binary compiles 2011-11-16 12:47:31 -08:00
Dane Springmeyer
f8316fcbe8 scons: fix rtree config check if statically linking sqlite3 2011-11-15 13:23:10 -05:00
Dane Springmeyer
25b14c3503 scons: Add DEBUG_UNDEFINED setting to trigger clang/llvm runtime behavior checking 2011-11-14 00:49:46 -08:00
Dane Springmeyer
e59e1fc50f scons: ensure sorting of libs/includes is the same 2011-11-13 19:12:39 -08:00
Dane Springmeyer
24242cd504 scons: fix plugin_base env 2011-11-13 17:00:08 -08:00
Dane Springmeyer
eb2bd4a6d9 scons: enable the sqlite rtree check 2011-11-13 16:13:37 -08:00
Dane Springmeyer
f987c58ccd scons: better test for rtree support 2011-11-13 15:13:49 -08:00