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
Dane Springmeyer
e670a1c44d
only expose save_to_cairo_file if cairo support available
2010-07-14 18:30:22 +00:00
Artem Pavlenko
5c2f51504a
+ call base class ctor
2010-07-14 14:46:26 +00:00
Hermann Kraus
7e10a32503
Created a class for metawriter_properties.
2010-07-14 10:34:18 +00:00
Dane Springmeyer
ae0274cc6b
make sure to only use mutexes if THREADING=multi/MAPNIK_THREADSAFE=True
2010-07-14 01:28:28 +00:00
Hermann Kraus
d5b0432dd7
Many metawriter improvements:
...
- Easier to configure
- Correct JSON output
- Handling more than one renderer run (writing pre-/postamble is no longer done in constructor/destructor)
- Collect all attributes required by metawriters
2010-07-12 15:27:33 +00:00
Hermann Kraus
9a0bcf23be
Added basic infrastructure for metawriter and support for JSON output (limited to PointSymbolizer atm)
2010-07-06 00:37:05 +00:00
Artem Pavlenko
aa0e17afd1
+ check cached connection status before returning.
...
if PQstatus(conn) == CONNECTION_BAD attempt to
create a new one
+ expose "conect_timeout" PG connection parameter
default to 4 sec
+ throw mapnik::datasource exception if connection
is 'bad' in mapnik::features(..)
2010-07-02 11:42:35 +00:00
Artem Pavlenko
a486aed3af
+ fixed bug introduced in r1920
...
(ustring parser includes single quotes
- remove extra '\'' in match/replace)
2010-06-28 22:43:35 +00:00
Artem Pavlenko
70b2453065
+ add explicit support for shield displacement
...
(NOTE:text displacement is relative shield!)
2010-06-28 21:32:30 +00:00
Artem Pavlenko
9b3809443c
+ fix naming style in mapnik::Map
2010-06-25 15:23:35 +00:00
Artem Pavlenko
b472808fb1
+ refactor remaining processing methods in agg_renderer
...
+ move agg_renderer.cpp to src/agg
2010-06-24 15:57:25 +00:00
Dane Springmeyer
04b7f5aa6f
maintain boost 1.42/1.41 compatibility as lemexe appears to behave like no_skip with boost 1.42
2010-06-23 03:53:29 +00:00
Artem Pavlenko
8c8f303429
+ allow empty strings in expressions e.g [name] <> ''
2010-06-22 13:06:55 +00:00
Artem Pavlenko
2f3a2c88b3
+ css color grammar
...
- case-insensitive named colors
- corrected alpha values parsing
2010-06-21 10:38:46 +00:00
Artem Pavlenko
ff9cca417b
+ use no_skip[] instead of lexeme[] directive
...
to avoid pre-skipping
2010-06-21 09:40:46 +00:00
Dane Springmeyer
e21f670275
add missing include
2010-06-21 03:18:07 +00:00
Dane Springmeyer
701c091f81
remove unneeded includes
2010-06-21 02:56:29 +00:00
Dane Springmeyer
0959f8ef16
+ add support to polygon_patter_symbolizer for global pattern alignment in addition to local/feature (default) alignment - closes #203
2010-06-20 22:36:49 +00:00
Dane Springmeyer
182628e3ab
+ add filter_factor on mapnik::query and allow setting of factor for image scaling modes which demand high quality resampling - bilinear requires 2x, others in future like lanzcos may require 3-4x - addresses #563
2010-06-20 04:01:59 +00:00
Artem Pavlenko
e81b1abb8f
+ add implementation files
2010-06-18 15:39:57 +00:00
Artem Pavlenko
7bf6a35f5f
+ fixed clang++ issue
2010-06-18 15:39:40 +00:00
Artem Pavlenko
cf26db081a
+ refactor path expressions parser
2010-06-18 15:39:32 +00:00
Artem Pavlenko
ca59a06743
+ move deg2rad to svg_path_commands
2010-06-18 15:39:23 +00:00
Artem Pavlenko
4c3eba876d
+ fixed template parameter shadowing (clang++)
2010-06-18 15:39:14 +00:00
Artem Pavlenko
5461739e64
+ remove ununsed varialble
2010-06-18 15:38:59 +00:00
Artem Pavlenko
a5557d2b98
+ qualify wit std::
2010-06-18 15:38:52 +00:00
Artem Pavlenko
c99dff801a
+ forward decl mapnik::Map
2010-06-18 15:38:29 +00:00
Artem Pavlenko
79458691a1
+ 'mutable' can't be applied to ref
2010-06-18 10:53:42 +00:00
Artem Pavlenko
e645338237
+ use FT_Stroker to stroke glyphs outlines
...
(we can have outlined text now!)
+ allow fractional halo_radius
+ TODO: Rename halo_fill to stroke
halo_radius to stroke-width
+ TODO: Implement proper 'halo' effect
2010-06-16 15:15:13 +00:00
Artem Pavlenko
e572b83d3a
+ fix copy ctor in symbolizer_with_image
2010-06-15 13:36:41 +00:00
Artem Pavlenko
9826cf98c5
+ move opacity parameter to the base class
...
(symbolizer_with_image)
+ rename opacity to text_opacity in text_symbolizer
to avoid name clashing
2010-06-15 12:27:42 +00:00
Artem Pavlenko
f43c36daad
+ separate state mutating svg ops from underlying data
...
to allow multi-threded access to svg symbols (SVG commands
are stored in std::vector<vertex_type> )
2010-06-14 16:38:02 +00:00
Artem Pavlenko
6030efab50
+ specialise svg parsers to expect const char* input
2010-06-14 13:18:17 +00:00
Artem Pavlenko
b309bba36e
+ pass scale_factor to feature_style_processor
2010-06-14 10:29:29 +00:00
Artem Pavlenko
03092107b6
+ refactor path grammar to match svg spec close
...
+ ensure first 'moveto' command is always in
absolute coordinates
FIXME:probably better to modify path grammar
to handle this.
+ vertex_stl_storage
2010-06-13 20:24:46 +00:00
Artem Pavlenko
68522e39fc
+ use agg implementation for circle,ellipse and rounded_rect
2010-06-13 13:45:59 +00:00
Artem Pavlenko
30b87400ca
+ put rasterizer def into sepatate header
2010-06-13 12:03:42 +00:00
Hermann Kraus
31a7aa2a3d
Output a warning if a style is not found.
2010-06-13 00:19:56 +00:00
Artem Pavlenko
d272326d88
+ skip <defs>...</defs>
2010-06-11 14:09:05 +00:00
Artem Pavlenko
b1b730d94c
+ add middle_point() method
...
+ fixed 'point' positioning
in shield_symbolizer
2010-06-10 16:34:52 +00:00
Artem Pavlenko
11fad966cb
+ add experimental 'scale_factor'
...
TODO: discuss with Carlos and Dane if this is a better approach
than having scale_factor in mapnik::Map object.
2010-06-10 14:12:20 +00:00
Artem Pavlenko
25dcebc18a
+ correct 'opacity' parameter logic
...
(SVG spec: 'The uniform opacity setting to be applied across an entire object.')
2010-06-10 14:12:12 +00:00
Artem Pavlenko
cc7e803b9d
+ preserve previously set alpha channel in
...
stroke/fill assignment so constructs like :
style="fill-opacity:0.5;fill:blue"
work with current svg attributes implementation
2010-06-10 14:12:03 +00:00
Artem Pavlenko
7e89bfa2db
+ don't use mapnik namespace inside mapnik namespace
2010-06-10 14:11:40 +00:00
Dane Springmeyer
f5ed4305f4
expose more coordinate transform methods, allowing projecting box2d<double> into screen coordinates at the same time as reprojecting geographical coordinates
2010-06-08 20:27:28 +00:00