Commit graph

774 commits

Author SHA1 Message Date
Dane Springmeyer
daf5cff723 add ability to set the bbox of a query object after initial contruction 2011-04-13 19:30:19 +00:00
Dane Springmeyer
903d1b49ef add a clip method to mapnik::box2d 2011-04-13 19:19:23 +00:00
Artem Pavlenko
0e0b7a578c + implement memory mapping using boost::interprocess
+ cache mapped memory regions for re-use
2011-04-06 13:02:31 +00:00
Dane Springmeyer
2d1e2ef998 add valid() method to box2d, and comment subtraction override as it does not have any function currently 2011-04-04 03:50:09 +00:00
Dane Springmeyer
7d6ed703f4 move numeric2string to sql_utils.hpp 2011-04-04 03:46:41 +00:00
Dane Springmeyer
49c011a48a avoid various compiler warnings 2011-04-03 04:30:32 +00:00
Dane Springmeyer
9b1a33be5c remove spurious semicolon 2011-04-02 03:08:16 +00:00
Dane Springmeyer
7095b1c907 initialize all metawriter members 2011-04-02 00:12:12 +00:00
Dane Springmeyer
de9a46cfeb remove tabs 2011-04-01 23:56:12 +00:00
Dane Springmeyer
84ea9e6101 avoid clang++ -pedantic compiler warnings 2011-04-01 06:24:57 +00:00
Dane Springmeyer
7181f631e8 avoid clang++ compiler warnings with -pedanic 2011-04-01 05:32:25 +00:00
Dane Springmeyer
14068cad23 move segment y_order sort to header that can be used by each renderer 2011-03-22 00:02:50 +00:00
Dane Springmeyer
b3c01a5b59 avoid uninitialized variable compiler warnings 2011-03-21 20:35:15 +00:00
Artem Pavlenko
9abfc24219 + remove namespace qualifier from DEFINE_ENUM
macro to keep clang++ 3.0 happy
2011-03-21 15:24:04 +00:00
Dane Springmeyer
3f219a7046 workaround for latest clang trunk (>=127962) which throws on template <> (extraneous 'template<>' in declaration of variable...) 2011-03-20 19:18:03 +00:00
Hermann Kraus
720d9f216c Add virtual constructors to text placement base classes. 2011-03-20 19:00:29 +00:00
Artem Pavlenko
ec4ef1bb34 + add missing files from 735_metawriter_inmem.patch 2011-03-16 16:50:02 +00:00
Artem Pavlenko
b543d7f1f4 + add optional length parameter to allow
passing not-null terminated char strings
2011-03-16 13:31:56 +00:00
Artem Pavlenko
9b47d8353e + restore #ifdefs around -> if(!p.process(symbols,*feature,prj_trans)) 2011-03-15 14:18:46 +00:00
Dane Springmeyer
aea93fe1f9 fix bug in hit_test for points, allowing possibility of hit if tolerance is fractional (most cases) 2011-03-13 22:15:52 +00:00
Artem Pavlenko
cbbc904bbd + qualify boost::spirit::qi placeholders to avoid ambiguity 2011-03-09 11:07:21 +00:00
Artem Pavlenko
3a4f9307a5 + add missing header 2011-03-07 12:54:00 +00:00
Artem Pavlenko
3daa06bb11 + impl GEOMETRYCOLLECTION parser as composite 2011-03-07 12:53:52 +00:00
Dane Springmeyer
4079fd7d08 make feature caching optional, and disabled by default (to avoid std::bad_alloc in low memory environments). Can be set as new layer property 'cache-features' - closes #657 2011-03-01 17:09:29 +00:00
Dane Springmeyer
efb19dea6c make the requirement of boost_regex unicode support optional by detecting if boost_regex was itself built with ICU support 2011-02-28 20:00:56 +00:00
Dane Springmeyer
2ea0340e2d avoid unintialized variable warnings in g++ 2011-02-28 18:30:38 +00:00
Hermann Kraus
4af0696b9d Add support for multiple placements.
NOTE: In some places indention is not updated to keep this patch readable. This will be fixed in the next revision.
2011-02-28 13:17:46 +00:00
Artem Pavlenko
57db45095f + boost.spirit WKT parser using mapnik::geometry_type
as synthesized attribute.
2011-02-24 15:47:53 +00:00
Artem Pavlenko
ef28bca095 + add push_vertex(x,y,command) method 2011-02-24 15:47:44 +00:00
Artem Pavlenko
93514d57a2 + add missing geometry types
+ correct geometry types in wkb reader
2011-02-24 15:47:36 +00:00
Dane Springmeyer
a317c5d051 add 'capitalize' option to text-transform - closes #715 2011-02-21 20:43:26 +00:00
Dane Springmeyer
663e030d41 be explicit about types for unicode - allows compile with nacl-g++ 2011-02-19 03:01:13 +00:00
Carlos López
83a7b4710e Fixed a bug that caused half of the vertexes to disappear from the SVG path.
+ mapnik::geometry_iterator was replaced by mapnik::svg::path_iterator
+ svg::path_output_grammar was simplified
+ the container for this grammar is now coord_transform2, instead of geometry
+ added typedef size_type to coord_transform2 and removed it from geometry
2011-02-14 03:40:25 +00:00
Dane Springmeyer
df8a987501 disable SVG_RENDERER until #712 is resolved 2011-02-09 10:43:59 +00:00
Dane Springmeyer
ec2090d8a8 avoid compiler warnings 2011-02-09 06:49:58 +00:00
Carlos López
6f6b161c7c geometry_iterator code documentation. 2011-02-07 01:45:29 +00:00
Carlos López
40047e7a56 SVG_RENDERER working again after changes introduced in r2302.
+ a boost::iterator is used to handle iteration in path grammar
+ svg_path_data_grammar consumes a reference to geometry, rather than a geometry, avoiding copy-construction
+ a size_type was added to geometry so it could model the attribute container concept
2011-02-05 07:08:01 +00:00
Dane Springmeyer
1c2d39f980 bump version to mapnik 2.0.0 2011-02-05 03:10:19 +00:00
Dane Springmeyer
c5833a6db8 remove unmaintained autotools scripts 2011-02-04 22:22:16 +00:00
Artem Pavlenko
da983367a8 + remove 'bind' param
from datasource (base class) ctor
  (FIXME: would be better to use parameters to
          pass to specific options to concrete
          datasource implementations)
2011-02-02 15:09:46 +00:00
Dane Springmeyer
7e7ca0a814 fix spelling 2011-02-02 02:44:46 +00:00
Dane Springmeyer
fd2d9d7ff3 enable aliased lines using stroke-gamma for line_symbolizer - closes #689 2011-02-02 01:46:14 +00:00
Dane Springmeyer
7043c416fa enable if/else type behavior in rules using style level keyword to control whether all rules will be evaluated or just the first that matches - closes #706 - thanks to original patch from kkaefer 2011-02-01 22:55:50 +00:00
Dane Springmeyer
75649b8863 add 'interior' point placement option to point_symbolizer - closes #709 2011-02-01 08:16:32 +00:00
Dane Springmeyer
e803b1c2ec add 'interior' placement option to text_symbolizr - patch from Toby Collet - closes #709 2011-02-01 08:13:08 +00:00
Dane Springmeyer
65a19d1f8b forward declare agg:trans_affine as a struct in cairo_renderer.hpp as per original declaration 2011-01-27 04:22:11 +00:00
Dane Springmeyer
a8328e1588 forward declard agg:trans_affine as a struct as per original declaration 2011-01-27 04:20:04 +00:00
Dane Springmeyer
5bf6efafb0 apply patch from Craig de Stigter for better scaling methods using agg image filters - closes #656 2011-01-27 03:47:54 +00:00
Dane Springmeyer
790e6c4282 clean up handling of raster_symbolizer filter_factor by using boost visitation instead of boost::get() 2011-01-27 03:20:39 +00:00
Dane Springmeyer
bcb9a66acf struct to hold directives to send to raster symbolizer 2011-01-27 03:03:46 +00:00
Dane Springmeyer
57f15aa74e forward declare agg:trans_affine and mapnik::marker classes to allow compiling against libmapnik without agg headers - see #703 2011-01-26 09:19:00 +00:00
Dane Springmeyer
481aeb6c98 comment debug output 2011-01-26 09:17:01 +00:00
Robert Coup
386a4f5daf #654 - add support for linear and radial gradients in SVG symbols. Thanks to Toby Collett for the coding & Paul Wicks for funding. 2011-01-26 01:18:40 +00:00
Carlos López
85bfb11c03 SVG renderer grammars working with iterator of geometry, but generating wrong path vertexes (all vertexes are output as 0s). 2011-01-23 23:10:05 +00:00
Carlos López
d270a555eb Added missing file 'geometry_iterator.hpp'. The iterator is still unused. 2011-01-22 16:45:23 +00:00
Carlos López
bdfaee32a6 SVG_RENDERER is compiling now, but it won't generate path data, only simple svg tags.
+ It is working with vertex_vector, instead of vertex_vector2.
+ The body of every function related to path generation was commented out so mapnik would compile with SVG_RENDERER=True.
+ TODO: Create an iterator for geometry.
2011-01-22 06:47:20 +00:00
Carlos López
d5d9858a84 SVG_RENDERER grammars adapted to use vertex_vector instead of vertex_vector2 and BOOST_FUSION_ADAPT_STRUCT instead of BOOST_TUPLE_ADAPT_CLASS. This changes have not been tested though. There's still a compile error because there is no iterator in class geometry anymore. 2011-01-18 03:43:53 +00:00
Artem Pavlenko
98b7f62155 + remove template from mapnik::rule
+ rename globaly rule_type -> rule
 ( ticket #552 )
2011-01-13 21:35:01 +00:00
Dane Springmeyer
2f369ff407 add a few missing include guards 2011-01-13 18:45:40 +00:00
Dane Springmeyer
2fa027855a don't return reference to temporary, and intialize metawriter values 2011-01-10 23:04:34 +00:00
Dane Springmeyer
ed22d073c3 fix serialization of missing shield symbolizer properties 2010-12-11 02:07:47 +00:00
Dane Springmeyer
fc6227afda better handling of alpha blending - patch from cdestigter - closes #674 2010-12-10 19:31:57 +00:00
Robert Coup
1acc54f1fb TextSymbolizer: make '\n' trigger line break. fixes #584. Thanks bcrosby for porting to trunk 2010-12-09 08:48:46 +00:00
Artem Pavlenko
6713df5937 + if avoid_edges=true check 'contains' using un-buffered extent. 2010-11-22 11:25:36 +00:00
Dane Springmeyer
58c72fc1c9 reflect new box2d<double>from_bbox() function in python, and add a new value_error class to represent parsing errors (TODO: translate in python to ValueError and throw from other parsers like expression and color) 2010-11-15 03:21:43 +00:00
Lucio Asnaghi
86a248d443 - leverage building extent (box2d) from string: multiple usage in datasources 2010-11-14 14:38:43 +00:00
Dane Springmeyer
84a8590964 remove const which has no effect here 2010-11-14 08:32:41 +00:00
Alberto Valverde
2d329799ef typo 2010-11-12 22:45:24 +00:00
Alberto Valverde
51d8df72f9 attempt at fixing geometry::hit_test() 2010-11-12 22:11:31 +00:00
Dane Springmeyer
385ad05205 create an sql_utils header for all sql-based plugins to be able to leverage, and move the postgis table_from_sql function into it 2010-11-11 16:33:30 +00:00
Artem Pavlenko
d5f0a497a8 + auto detect paths orientation
+ not need to set clip box on rasterizer it's
  already set (fixes gap when label is overlapping border)
2010-11-10 14:40:05 +00:00
Dane Springmeyer
90e51e79e8 warn the user if we are going to ignore their raster layer because exact projection matching is so brittle 2010-11-09 19:54:53 +00:00
Dane Springmeyer
ecc974aa6e avoid compiler warning 2010-11-08 23:17:35 +00:00
Artem Pavlenko
ab101401cd + simplify geometry implementation
+ removed multiple geometry typedefs
+ use geometry_type
+ revert to storing vertices in vector_vertex
  (previous implementation using std::vector was
   fragmenting heap causing performance issues with large geometries)
+ FIXME: hit_test is broken!
2010-11-03 13:19:15 +00:00
Artem Pavlenko
0823b83900 + apply Nino Walker's patch text_minimum_padding.diff #547
TODO:  consider simplifying text symbolizer options
2010-11-03 13:18:56 +00:00
Artem Pavlenko
87eafdba19 + fix unused argument warning 2010-11-03 13:18:46 +00:00
Dane Springmeyer
ea39e6f69e add a directory for plugin templates - and add a first "hello world" with basic docs" 2010-10-24 08:04:16 +00:00
Robert Coup
1dce437120 #622 add optional late-binding of datasources 2010-10-24 06:34:18 +00:00
Dane Springmeyer
3011f53205 add support to PointSymbolizer for 'ignore_placement' - #564 2010-10-15 02:15:40 +00:00
Dane Springmeyer
688b1f2299 add an 'extra_attributes' property to the map to store mapnik::parameters that don't make sense as full attributes but need to be carried through from load_map() to save_map() for applications that use mapnik to serialize to xml such as Cascadenik and Quantumnik (currently useful storage for 'minimum_version' and 'font_directory') 2010-10-07 19:34:36 +00:00
Dane Springmeyer
157e835ebf make sure to return with something 2010-10-07 19:30:35 +00:00
Alberto Valverde
6e31bacf2c fixed the regression in hit_test mentioned in #560 in a temporary way until the geometry interafce settles down 2010-10-01 12:24:29 +00:00
Artem Pavlenko
bbc797aeff + pass scale_factor to text placement 2010-09-27 09:58:30 +00:00
Artem Pavlenko
1557892862 + ident 2010-09-27 09:58:12 +00:00
Dane Springmeyer
154450fb8b fix test failure when calling ds.all_features() by allowing a simple Box2d Query contructor - sidestepping issue of converting a python tuple to a boost tuple atm 2010-09-26 23:39:04 +00:00
Dane Springmeyer
207168fafc fix broken feature caching - #624 2010-09-26 10:25:15 +00:00
Artem Pavlenko
01076f87e3 + don't process raster datasource
+ if src and dest projections are not matched
2010-09-24 15:44:35 +00:00
Dane Springmeyer
b3810a5f6a stub in new alpha manipulation functions for mapnik image - #609 2010-09-24 15:37:19 +00:00
Tom Hughes
05ab656b57 The upcoming 4.8.0 release of PROJ.4 is supposed to be threadsafe, so
lets believe them and not use any locks if we are building against
version 4.8.0 or later.

Instead we use the new proj_ctx_alloc routine to create a context and
pass that when initialising the projection structure.
2010-09-24 15:26:50 +00:00
Artem Pavlenko
6fa56b143a + add 'is' keyword (same as 'eq', '=')
+ parse 'null' as  value_null()
2010-09-24 12:55:20 +00:00
Dane Springmeyer
c35310445a rename text_convert to text_transform to match css naming convention (also matching enums to css) 2010-09-18 19:10:18 +00:00
Dane Springmeyer
ec8de98740 avoid compiler warnings 2010-09-18 18:51:22 +00:00
Dane Springmeyer
e22c187e95 expose an indexing operator on box2d to allow for easy pythonic access to bounds parts 2010-09-16 14:41:29 +00:00
Artem Pavlenko
571bd1141b + make typdefs public 2010-09-02 20:20:26 +00:00
Dane Springmeyer
8125366ed6 add newline at end of file to avoid compiler warning on RHEL 2010-08-26 23:15:07 +00:00
Dane Springmeyer
22fc14ef05 + ability to pass coord2d to box2d::re_center in core and python 2010-08-19 21:35:27 +00:00
Dane Springmeyer
b307013ba2 add additional support for dynamically drawing ellipses in the markers_symbolizer, now supporting both line/point placement, metawriters for point placement, and width/height/stroke attributes - TODO - reflect in python bindings, buggy matrix transform for ellipses 2010-08-19 17:33:01 +00:00
Dane Springmeyer
a7e9cc7e87 make output of empty json (if no features are hit) on by default, and rename parameter from 'only-nonempty' to 'output-empty' 2010-08-19 05:50:08 +00:00
Hermann Kraus
d3bb11456f Last Summer of Code changes: Support metawriter in upgrade_map_xml.py, fix attribute collector. 2010-08-16 19:14:21 +00:00
Hermann Kraus
55d9bf3290 Add glyph dimension caching and move functions from .hpp to .cpp 2010-08-13 18:41:54 +00:00
Hermann Kraus
7fea0f7a6c Metawriter support for LineSymbolizer and LinePatternSymbolizer 2010-08-12 21:39:29 +00:00
Hermann Kraus
fb4baa4fcf Metawriter support for LineSymbolizer and LinePatternSymbolizer 2010-08-12 19:12:15 +00:00
Marcin Rudowski
bd8f189bd1 fix raster blending, ported r2137, fixing #589 2010-08-12 06:59:35 +00:00
Hermann Kraus
24fb874c7d Add metawriter support to save_map.cpp 2010-08-12 00:11:01 +00:00
Dane Springmeyer
0637d59b5c make SVG processor dependent (for now) on SVG_RENDERER scons option 2010-08-10 23:46:11 +00:00
Dane Springmeyer
6cce96dd06 upgrade default projection of epsg:4326 to match exactly what proj4 stores in /usr/local/share/epsg for 4326 (aka WGS84) 2010-08-10 18:18:31 +00:00
Dane Springmeyer
5297d9bba0 allow for maintaining default ctor for projection class, reverting part of r2105 and part of r2102 (would have caused compile problems in mod_tile) - see also #333, which this sets us up for 2010-08-10 17:42:17 +00:00
Dane Springmeyer
48a9edb01c allow vertex_vector2 to be copyable, enabling compiles on osx - needs second look #588 2010-08-10 17:22:21 +00:00
Hermann Kraus
db21530977 Add symbolizer_base constructor to all symbolizers. 2010-08-10 12:34:44 +00:00
Hermann Kraus
30470bd52b Metawriter support for TextSymbolizer. 2010-08-10 12:19:19 +00:00
Hermann Kraus
85cd4b67c3 Get full fontsize information. 2010-08-10 12:05:38 +00:00
Carlos López
fda7f66204 Added missing files from last commit. 2010-08-10 08:25:09 +00:00
Carlos López
e390715c58 Added support for processing multiple symbolizers to svg renderer. 2010-08-10 08:23:02 +00:00
Hermann Kraus
72c5983f1e Fix typo. 2010-08-08 19:00:56 +00:00
Hermann Kraus
92626bc1ad Document metawriter classes. 2010-08-08 02:42:40 +00:00
Hermann Kraus
0fdf3a2463 Pass parameter as const&. 2010-08-07 20:03:05 +00:00
Artem Pavlenko
ccf9f841da destroy source glyph in FT_Glyph_Stroke 2010-08-05 11:56:26 +00:00
Artem Pavlenko
7e0e117352 + call FT_Done_Glyph on (FT_Glyph_Copy) created glyph 2010-08-05 11:56:18 +00:00
Artem Pavlenko
f9b9c14500 pass parameters by const ref 2010-08-05 11:56:11 +00:00
Hermann Kraus
5725c694c6 Add "only-nonempty" to XML config. 2010-08-02 12:37:15 +00:00
Hermann Kraus
035e99d2f0 Only initialize proj_transform once in metawriter_json_stream. 2010-08-02 12:14:27 +00:00
Hermann Kraus
03718169b1 Only write non-empty tiles. 2010-08-02 01:35:18 +00:00
Hermann Kraus
75dcf67c92 Add some helper functions. 2010-08-02 00:37:15 +00:00
Hermann Kraus
0ae110015b Metawriter: Only write features that are actually rendered. 2010-08-01 15:07:50 +00:00
Hermann Kraus
8f8903baa5 Bugfix + better performance. 2010-07-31 10:20:56 +00:00
Carlos López
eec4864f41 SVG renderer now outputs path tags for polygons, with a fixed stroke color and size. 2010-07-30 22:15:50 +00:00
Carlos López
9af87ba8db SVG generator outputs path vertices in user coordinates. 2010-07-30 18:40:41 +00:00
Hermann Kraus
3791e95eda Some metawriter fixes. 2010-07-29 16:49:47 +00:00
Carlos López
6872d13968 Implemented svg_renderer::process_polygon_symbolier that uses the SVG path grammar, which outputs coords in map coords. 2010-07-28 06:50:25 +00:00
Carlos López
39a1038eb8 Added missing files: include/mapnik/svg/svg_generator.hpp and include/mapnik/svg/svg_generator_path_grammar.hpp. 2010-07-26 06:23:43 +00:00
Carlos López
853d55b7d6 Changed geometry and vertex_vector2 back to inherit from boost::noncopyable. Thought that Karma would require them to be copyable. 2010-07-26 06:19:50 +00:00
Carlos López
f44333fa4e Added dummy grammar to generate SVG paths from geometries, as well as an SVG generator component. 2010-07-26 04:25:09 +00:00
Hermann Kraus
87fd78f313 Add support for dynamic filename in metawriters. 2010-07-25 22:41:18 +00:00
Hermann Kraus
7df4474f0b Add metawriter properties to Map object. 2010-07-25 21:05:30 +00:00
Carlos López
b5b94a868c Changed template parameter type from stream to iterator and added a specialization for std::ostream_iterator. 2010-07-22 04:48:11 +00:00
Dane Springmeyer
f802d21865 speed optimizations by more careful use (or avoidance) of locking around projection code 2010-07-21 23:05:22 +00:00
Dane Springmeyer
8b66c34eca only using cache-first logic if caching features 2010-07-21 00:43:13 +00:00
Artem Pavlenko
1ecdba1965 + fix feature caching implementation - collect
attributes names from all active styles

+ use BOOST_FOREACH to improve readability

 TODO - move 'filter_factor' to raster_symbolizer
2010-07-20 22:21:14 +00:00
Carlos López
bb44d76ee1 Added generation of SVG root element with width and height attributes. Also added test for testing the output generated by svg_renderer (combined_test.cpp). 2010-07-20 06:41:16 +00:00
Carlos López
789ff19824 Added generation of XML declaration and doctype definition to svg_renderer. 2010-07-20 01:35:01 +00:00
Carlos López
30e85c4d58 Added template parameter and data member to svg_renderer for holding the output stream. 2010-07-20 00:40:37 +00:00
Carlos López
eb7da9bcf5 Added the path of the svg_renderer's files to scons for compilation. There is no variable yet to disable their compilation. 2010-07-19 19:48:34 +00:00
Artem Pavlenko
8b8e247e62 + add support for background-image attribute
( background image is repeated both vertically
   and horizontally )
2010-07-19 11:10:03 +00:00
Artem Pavlenko
4bf42fe2d7 + pass std::string argument by const& 2010-07-19 11:09:44 +00:00
Hermann Kraus
384c703557 Remove unneeded headers from save_map.{cpp,hpp} 2010-07-19 00:21:53 +00:00
Hermann Kraus
2c10bb68ef Enable metawriter_json to operate on any stream object. 2010-07-18 23:49:11 +00:00
Dane Springmeyer
7918184d13 add helper functions for recursively registering fonts, and ensure they match one of the known freetype2 supported fonts (by ext) - closes #559 2010-07-15 23:04:51 +00:00
Dane Springmeyer
4f9d6e135c output metadata about the searched plugin directories if a plugin cannot be found - closes #568 2010-07-15 21:11:41 +00:00
Artem Pavlenko
3d888515b3 + add feature caching support when multiple styles are
specified for the same layer. This should reduce
  I/O for complex styles and make multiple styles per
  layer a relatively cheap op. TODO: tweak memory_datasource
  impl.
2010-07-15 12:35:25 +00:00
Carlos López
d273101adc Added empty svg_renderer class, with unimplemented methods. 2010-07-15 05:32:31 +00:00