Commit graph

937 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
03422de504 + close polygons (SEG_CLOSE) 2012-07-26 15:51:10 +01:00
artemp
618bc1ba0f + close polygon 2012-07-26 15:20:23 +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
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
6df998cf39 fixup various plugin includes 2012-07-25 09:29:21 -07:00
Dane Springmeyer
241bf28da0 'include what you use' in plugins to set up for future forward declarations in mapnik/feature.hpp and mapnik/datasource.hpp 2012-07-24 19:21:55 -07:00
Dane Springmeyer
1b23838c58 avoid uninitialized compiler warning 2012-07-23 17:43:21 -07:00
Dane Springmeyer
5c20a9f72a suppress unused variable compiler warnings with gcc 2012-07-23 17:29:10 -07:00
Dane Springmeyer
a1d6579da2 silence a few compiler warnings 2012-07-23 17:21:29 -07:00
Dane Springmeyer
0e7414ea1d ogr plugin: no need to pass dataset pointer 2012-07-20 19:01:09 -07:00
Dane Springmeyer
669c4906d4 avoid c-linkage warning with datasources - closes #1323 2012-07-20 18:34:41 -07:00
Dane Springmeyer
e36081a5c0 change geometry_utils::from_wkb to return a bool that signifies if at least one wkb path was parsed - refs #1333 and #1305 2012-07-20 15:09:01 -07:00
Dane Springmeyer
15a624fa79 update readmes for template plugins 2012-07-10 14:54:05 -07:00
Dane Springmeyer
d3b375713b properly populate the context 2012-07-10 14:51:13 -07:00
Dane Springmeyer
86f137fd25 recompile stale targets during deploy 2012-07-10 14:50:43 -07:00
Dane Springmeyer
c227ea8b5f add sample Makefile for local dev 2012-07-10 14:46:00 -07:00
Dane Springmeyer
f79fd4634e make markdown files 2012-07-10 14:28:52 -07:00
artemp
700b5978d8 + check bounding box intersections if use_spatial_index=false (#971) 2012-07-02 18:15:18 +01:00
Dane Springmeyer
37c9142515 csv plugin: also detect fields named 'lng' as longitude 2012-06-25 10:18:09 -07:00
Dane Springmeyer
39bae3825e remove plugin usage of lexical cast - refs #1055 2012-06-22 16:49:53 -04:00
Artem Pavlenko
8d4534de78 + remove debug print 2012-06-14 15:10:32 +01:00
Artem Pavlenko
ddfe15025b + use rtree index 2012-06-14 14:41:15 +01:00
Artem Pavlenko
e89eb99e28 + geojson input plugin (thanks, @tmcw!) 2012-06-13 13:30:58 +01:00
Sandro Santilli
ceffa76bdc Provide !pixel_width! and !pixel_height! tokens (#1181) 2012-04-24 12:56:07 +02:00
kunitoki
47b6f8e454 - avoid parsing parameters in features() (postgis new simplify geometries)
- renamed simplify to simplify_geometries
2012-04-19 22:05:57 +02:00
Sandro Santilli
f7c5e69315 PostGIS vectors reduction, XML parameter driven (#1136) 2012-04-17 17:03:20 +02:00
Dane Springmeyer
74d4f84787 formatting 2012-04-16 22:23:05 -07:00
Dane Springmeyer
e21bcb35a1 whitespace 2012-04-16 22:22:35 -07:00
Dane Springmeyer
e947d7eac9 ogr: fix reading of geometry type for datasources like geojson that need to read first feature to detect the type propertly 2012-04-12 13:04:59 -07:00
kunitoki
46d45e8496 - decrease the default number of connection in oracle pool 2012-04-10 15:53:58 +02:00
kunitoki
8f36d47a13 - fixed a potential buffer overflow in geos plugin error reporting
- updated changelog for new logging system
2012-04-10 10:24:53 +02:00
Dane Springmeyer
bfb0f22788 fix compile of geos datasource 2012-04-09 17:19:03 -07:00
kunitoki
a902a08aab - added logging to file
- started working on the logger bindings
- cleanups some error reporting with cerr/clog in the library
2012-04-10 00:25:31 +02:00
kunitoki
b60c508c1c - finish thrashing all the useless ifdef MAPNIK_LOG 2012-04-09 21:41:56 +02:00
kunitoki
74342e3083 - no need to #ifdef all the time: the compiler should optimize out the log calls when no MAPNIK_LOG is defined
- initially got rid of those ifdefs in plugins only
2012-04-09 12:05:49 +02:00
kunitoki
8c58a9aa73 - improved again the logging facilities
- aligned the plugins to using the new methods with severity
- implemented per object severity, with fallback to global (with global functions to set them programmatically)
- initial check in of logger python bindings (todo)
2012-04-09 03:00:51 +02:00
Dane Springmeyer
31303ff341 shape plugin: only add feature value if parsing is successful 2012-04-07 17:56:58 -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
b21d8a9957 avoid copy 2012-04-06 14:29:13 -07:00
Dane Springmeyer
b7f714f7ec postgis: primary key autodetection will now only happen if 'autodetect_key_field' is set to true - maintains current behavior - refs #804 2012-04-05 11:05:14 -07:00
Dane Springmeyer
c88fcc8f04 revert unintended change to sqlite in a7e150a593 2012-04-03 16:33:06 -07:00
Dane Springmeyer
46b16c917e support nodata for paletted images and allow user to set nodata on-the-fly - closes #1160 and #1161 - refs #688 and refs #730 and refs #50 and refs #1018 2012-04-03 16:06:36 -07:00
Dane Springmeyer
a7e150a593 tests: add simple tests for postgis 'bbox' token replacement 2012-04-02 19:29:06 -07:00
Dane Springmeyer
253a1e4b4b occi: fix invalid concatenation uncovered by latest clang++ 2012-04-02 19:20:09 -07:00
Dane Springmeyer
10848f9d04 postgis: warn in the unlikely case of a numeric primary key 2012-04-02 18:13:27 -07:00
Dane Springmeyer
763e84a6e9 postgis: add support for auto-detection of primary key field - closes #804 - refs #753 2012-04-02 16:20:41 -07:00
Dane Springmeyer
f6a0f80f32 make note of need for 64bit int support in code comments for postgis plugin - refs #895 2012-04-02 15:42:52 -07:00
kunitoki
4a7966498c - postgis resultset cosmetics 2012-03-31 22:24:32 +02:00
kunitoki
14bc344898 - cosmetics in postgis datasource 2012-03-28 22:10:48 +02:00
kunitoki
7dbe1279bf - reorder constructor initialization list to avoid warnings in raster datasource 2012-03-28 22:01:45 +02:00
Artem Pavlenko
242385f16d use mapnik::util namespace for conversions 2012-03-23 11:08:39 +00:00
Hermann Kraus
94634d4691 Correctly parse empty elements in OSM datasource. 2012-03-20 23:13:15 +01:00
Hermann Kraus
bd9fe739e5 Throw in OSM datasource if not all parameters are specified but bind is requested. 2012-03-20 23:13:15 +01:00
Dane Springmeyer
9556584b0c create context in init list 2012-03-16 13:43:48 -07:00
Artem Pavlenko
385ca5b5b5 Merge remote-tracking branch 'origin/master' 2012-03-13 16:44:36 +00:00
Dane Springmeyer
b36739fd88 apply mapnik_format.el formatting 2012-03-13 07:59:22 -07:00
Artem Pavlenko
3f681a7504 + move mapnik::context_ptr to initialization list 2012-03-13 10:19:46 +00:00
Artem Pavlenko
3891922b28 use const ref and avoid creating temp std::string 2012-03-13 10:11:58 +00:00
Hermann Kraus
2b68cea0a1 Merge branch 'new-xml'
Conflicts:
	include/mapnik/config_error.hpp
	include/mapnik/ptree_helpers.hpp
	src/formatting/text.cpp
	src/libxml2_loader.cpp
	src/load_map.cpp
	src/metawriter_factory.cpp
	src/text_placements/registry.cpp
	src/text_placements/simple.cpp
2012-03-13 11:11:28 +01:00
Hermann Kraus
c2f9e3b637 Include correct file in csv datasource. 2012-03-11 23:07:39 +01:00
Artem Pavlenko
302b7f1696 Revert "update rasterlite, occi, csv, hello_world, and rundemo"
This reverts commit ab7f6ee75c.
2012-03-09 15:33:36 +00: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
ab7f6ee75c update rasterlite, occi, csv, hello_world, and rundemo 2012-03-09 12:58:16 +00:00
Hermann Kraus
c3cd50ff57 Complete new XML structure. 2012-03-07 19:16:41 +01:00
Dane Springmeyer
f90b410ece formatting to use const& as per 6462af3 2012-03-05 11:10:04 -08:00
Dane Springmeyer
ab4c9da7ad fixup ogr plugin error string output 2012-03-04 22:28:02 -08:00
Artem Pavlenko
c25e8c7d94 Merge remote-tracking branch 'origin/master' 2012-03-02 09:34:57 +00:00
Hermann Kraus
69824314ed Simplify OSM plugin. 2012-03-02 01:01:13 +01:00
Hermann Kraus
9eec4eb1be Fix OSM plugin. 2012-03-02 00:51:44 +01:00
Artem Pavlenko
726724b3c7 pass by ref
move conversions impl into .cpp
2012-03-01 18:36:13 +00:00
Dane Springmeyer
5bdaf44a7a Revert "shape: check if multiple parts are interior rings or separate"
This reverts commit faaa4f6e3f.
2012-02-26 22:11:22 -08:00
Dane Springmeyer
5a7de9c0db remove uneeded default cases 2012-02-24 18:58:12 -08:00
Dane Springmeyer
74502b9d15 remove uneeded default cases 2012-02-24 18:56:58 -08:00
Dane Springmeyer
e4ce3d1929 cast to avoid msvc warning 2012-02-24 16:14:34 -08:00
Dane Springmeyer
524d6bea5f avoid implicit cast from sqlite_int64 to int 2012-02-23 09:50:06 -08:00
Dane Springmeyer
4c4bfc8fc5 remove all usage of lexical_cast in postgis plugin - refs #1055 2012-02-21 11:03:33 -08:00
Dane Springmeyer
9be9b09d72 Merge branch 'master' of github.com:mapnik/mapnik 2012-02-16 17:44:34 -08:00
Artem Pavlenko
c83ab1d14e Merge remote-tracking branch 'origin/master' 2012-02-15 19:20:17 +00:00
Artem Pavlenko
01497bfc36 + add typedef size_type to mapnik::vertex_vector
+ remove set_capacity() method - no longer required
2012-02-15 15:16:33 +00:00
Dane Springmeyer
4ad9b4d282 formatting 2012-02-14 16:07:23 -08:00
Dane Springmeyer
1c07372a13 postgis: make sure to add key_field to feature context 2012-02-14 14:58:09 -08:00
Dane Springmeyer
6dfb3604a4 postgis: remove last usage of deprecated functions - fully supporting postgis 2.0 - closes #1083 2012-02-14 13:07:05 -08:00
Dane Springmeyer
e2d398f6db add permissive flag to ogr and shape plugins to work around boost interprocess compile bug - closes #1082 - refs #950 and #1001 2012-02-14 10:33:40 -08:00
Dane Springmeyer
00a2bec062 silence signed/unsigned compiler warning 2012-02-13 11:01:58 -08:00
Dane Springmeyer
b866b6d51c remove uneeded variables 2012-02-13 11:01:44 -08:00
Dane Springmeyer
c33d534b80 link to boost system 2012-02-09 16:00:39 -08:00
Dane Springmeyer
b44a63ac1f link all remaining plugins to boost_system to avoid potential linking errors with boost-trunk (upcoming 1.49) - closes #1070 2012-02-09 16:00:11 -08:00
Dane Springmeyer
1e2897b28d update rasterlite to new feature_impl 2012-02-02 09:00:02 -08:00
Dane Springmeyer
0e701dd899 initialize context in init list 2012-02-02 08:58:20 -08:00
Dane Springmeyer
77c58e487d whitespace fixes 2012-02-01 17:37:35 -08:00
Dane Springmeyer
60f1dadcd8 add code comment 2012-02-01 16:17:59 -08:00
Dane Springmeyer
e4a11c0d07 use correct context type 2012-01-31 08:35:40 -08:00
Artem Pavlenko
79d44e1bf8 Merge branch 'feature_impl' of github.com:mapnik/mapnik into feature_impl 2012-01-24 14:39:13 +00:00
Artem Pavlenko
75024c3fa1 Merge branch 'master' into feature_impl 2012-01-24 12:48:19 +00:00
Artem Pavlenko
19deb86591 append connection string to connection error message 2012-01-24 12:36:33 +00:00
Dane Springmeyer
aa6da2dce9 collect context before featureset creation in sqlite 2012-01-23 23:51:31 -08:00
Dane Springmeyer
62cf7cb2fe no need for collecting size in postgis plugin 2012-01-23 23:50:50 -08:00
Dane Springmeyer
c576291346 push value into context for gdal plugin 2012-01-23 23:50:24 -08:00
Artem Pavlenko
4f48cce42e push column names into context_type 2012-01-23 08:39:22 +00:00
Artem Pavlenko
54941d2893 + refactor attribute validating
+ fix context in feature_at_point
2012-01-20 12:29:17 -05:00
Artem Pavlenko
1f98e0ce4e + fix context init
+ cleanup
2012-01-20 11:07:29 -05:00
Artem Pavlenko
6d6f213c8f Merge branch 'feature_impl' of github.com:mapnik/mapnik into feature_impl 2012-01-19 17:38:49 -05:00
Artem Pavlenko
7601095e24 move context's typedef inside to avoid poluting global namespace 2012-01-19 17:36:27 -05:00
Dane Springmeyer
9097ea0ceb update sqlite and osm datasources to new feature impl 2012-01-19 16:34:33 -05:00
Dane Springmeyer
b7032316d4 update the ogr plugin to use new feature_impl 2012-01-19 12:55:07 -05:00
Artem Pavlenko
5ebe4d4ea3 + fix name 2012-01-19 11:08:07 -05:00
Artem Pavlenko
a88186fef8 no need for boost::noncopyable in derived classes 2012-01-18 09:13:29 -05:00
Artem Pavlenko
e699ba17cb Merge branch 'master' into feature_impl 2012-01-18 07:48:57 -05:00
Dane Springmeyer
425f20fb68 ogr plugin: for geometry type inspection support older gdal/ogr versions - fixes compile on ubuntu oneiric 2012-01-17 18:43:01 -05:00
Dane Springmeyer
fb80de8dfe ogr plugin: for geometry type inspection support older gdal/ogr versions - fixes compile on ubuntu oneiric 2012-01-17 18:43:01 -05:00
Artem Pavlenko
63a3399036 Merge branch 'feature_impl' of github.com:mapnik/mapnik into feature_impl 2012-01-17 17:58:34 -05:00
Artem Pavlenko
7f816eaeca fix init order 2012-01-17 17:58:00 -05:00
Dane Springmeyer
820b9a2b25 merge master with feature_impl 2012-01-17 17:47:27 -05:00
Artem Pavlenko
436fc91c3e Merge pull request #1021 from mapnik/geometry_type_descriptor
Add Geometry type descriptor
2012-01-17 11:31:24 -08:00
Artem Pavlenko
9407991be4 Merge pull request #1021 from mapnik/geometry_type_descriptor
Add Geometry type descriptor
2012-01-17 11:31:24 -08:00
Dane Springmeyer
e4c03f6a54 adapt occi, geos, and kismet plugins to new feature impl 2012-01-17 14:22:21 -05:00
Dane Springmeyer
f0e37a9fa1 update csv plugin to use new feature interface 2012-01-17 13:34:08 -05:00
Dane Springmeyer
e1ba3f723d add issue # to code comments 2012-01-17 13:33:35 -05:00
Artem Pavlenko
50b5d06a48 Merge remote-tracking branch 'origin/feature_impl' into feature_impl
Conflicts:
	include/mapnik/feature.hpp
2012-01-17 12:39:16 -05:00
Artem Pavlenko
ab69053daa Merge branch 'master' into feature_impl 2012-01-17 10:37:47 -05:00
Dane Springmeyer
6a2a847c3b remove unused shx code 2012-01-17 10:06:59 -05:00
Dane Springmeyer
2a64b478ef support as low as geos v3.1.0 - closes #1031 2012-01-17 01:48:02 -05:00
Dane Springmeyer
09857d6e8c support as low as geos v3.1.0 - closes #1031 2012-01-17 01:48:02 -05:00
Dane Springmeyer
63891cec15 finish refactor, moving to separate method off datasources to get_geometry_type and using enums all around 2012-01-17 01:09:46 -05:00
Dane Springmeyer
b0d0d06564 finish refactor, moving to separate method off datasources to get_geometry_type and using enums all around 2012-01-17 01:09:46 -05:00
Artem Pavlenko
e17c6ec5ff feature_impl update 2012-01-16 17:55:44 -05:00
Artem Pavlenko
5011cee98c + upgrade postgis.input to work with feature_impl 2012-01-16 13:19:31 -05:00
Artem Pavlenko
d207580feb don't forget to init context_ptr 2012-01-16 13:18:00 -05:00
Artem Pavlenko
87e4f22966 + update raster plugin to work with new feature_factory 2012-01-16 09:51:31 -05:00
Dane Springmeyer
66a0cfc81f refactor 2012-01-14 22:35:40 -08:00
Dane Springmeyer
834310f2d8 refactor 2012-01-14 22:35:40 -08:00
Artem Pavlenko
4c39a34ddf Merge branch 'master' into feature_impl 2012-01-13 10:25:47 +00:00
Dane Springmeyer
2c4a86d4cb Merge branch 'master' of github.com:mapnik/mapnik into geometry_type_descriptor 2012-01-12 18:48:53 -08:00
Dane Springmeyer
e716d6f440 Merge branch 'master' of github.com:mapnik/mapnik into geometry_type_descriptor 2012-01-12 18:48:53 -08:00
Dane Springmeyer
46d53cb40d plugins/
pass by value
2012-01-12 14:05:03 -08:00
Dane Springmeyer
95c7e4a076 plugins/
pass by value
2012-01-12 14:05:03 -08:00
Artem Pavlenko
86ea7f2951 remove unused data members 2012-01-12 12:28:53 +00:00
Artem Pavlenko
159a69a0bb add shape_utils 2012-01-12 12:20:39 +00:00
Artem Pavlenko
0bb8adbbdc factor out common code to reduce duplication (shape_utils) 2012-01-12 12:18:50 +00:00
Artem Pavlenko
c6338f82af use boost::noncopyable 2012-01-12 10:11:01 +00:00
Artem Pavlenko
3bd41e45a4 upgrade shape.input to new feature impl 2012-01-12 10:04:08 +00:00
Dane Springmeyer
975afebd87 ensure all plugins report best guess at top level geometry_type using new descriptor attribute 2012-01-11 20:03:23 -08:00
Dane Springmeyer
7be62e594a ensure all plugins report best guess at top level geometry_type using new descriptor attribute 2012-01-11 20:03:23 -08:00
Dane Springmeyer
1fa26fa067 close #970 by removing non-north-up restriction which appears not to be working properly 2012-01-09 08:39:22 -08:00
Dane Springmeyer
8d11b0f16e close #970 by removing non-north-up restriction which appears not to be working properly 2012-01-09 08:39:22 -08:00
Artem Pavlenko
02eb5b8f12 shape: check if multiple parts are interior rings or separate
polygons. Currently only test if first coordinate inside exterior
ring and assume first ring is exterior.

If this approach is not robust enough we can calculate ring orientations
instead. Shape file convention is: CW - exterior, CCW - interior.

very simple
2012-01-05 16:24:38 +00:00