Commit graph

792 commits

Author SHA1 Message Date
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
8b92943608 + max_char_angle default to 25 degrees 2010-09-24 12:55:14 +00:00
Artem Pavlenko
86f4027d9d + store max_char_angle in radians
+ default to 25.0 degrees
2010-09-24 12:55:08 +00:00
Artem Pavlenko
71bfe37601 + align text placement to pixel boundary 2010-09-24 12:55:03 +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
523b09701e Add the ability to pass custom CXXFLAGS and LDFLAGS that will be prioritized above other compiler and linker flags 2010-09-18 18:02:15 +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
46f9a7188a + don't compensate dx/dy 2010-09-10 13:49:21 +00:00
Artem Pavlenko
acd05cb5cd + align text and shields to pixels 2010-09-10 13:15:34 +00:00
Artem Pavlenko
14971ed88c + initialise displacement_ with shield_displacement 2010-09-10 13:15:25 +00:00
Artem Pavlenko
56bca0d194 + re-use placement for subsequent points 2010-09-10 13:15:06 +00:00
Dane Springmeyer
df42fcde56 locking is required around pj_init_plus (partial revert of 2063) as it appears pj_init_plus will fail under high concurrent load even with proj 4.7.0 (only seen when reprojecting data) and will likely require use of a context (available in next release) if we wish to remove locks 2010-08-27 22:05:15 +00:00
Dane Springmeyer
9674171eb4 fixes for building on solaris and opensolaris, in addition to automatic running of ldconfig (will benefit builds on linux and fail silently otherwise) 2010-08-26 01:21:47 +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
1fcb0eebec serialize stroke separately from line_symbolizer, setting up for other symbolizers to share stroke attributes 2010-08-19 15:45:53 +00:00
Dane Springmeyer
b5f36154fc parse stroke properties separately from parsing a line symbolizer - setting up for being able to easily add strokes to other symbolizers 2010-08-19 12:20:30 +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
b6f839b0f1 Calculate exact bounding boxes for GlyphSymbolizer. 2010-08-13 00:51:58 +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
Hermann Kraus
4cb09a8aca Fix small bugs. 2010-08-12 16:58:37 +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
Hermann Kraus
7dea58b625 Metawriter for Cairo. 2010-08-11 11:45:56 +00:00
Hermann Kraus
5867aadb66 Metawriter support for ShieldSymbolizer. 2010-08-11 03:25:15 +00:00
Hermann Kraus
a88ab24a72 Handle straight lines specially.
Add comment about coordinate systems.
2010-08-11 02:26:14 +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
Hermann Kraus
7c5d0336c9 Small fixes + improvements. 2010-08-10 15:31:14 +00:00
Hermann Kraus
990df317fd "size" is not an optional GlyphSymbolizer attribute. 2010-08-10 14:46:39 +00:00
Hermann Kraus
de5d191a02 Metawriter support for GlyphSymbolizer. 2010-08-10 12:44:29 +00:00
Hermann Kraus
4dc2a466f8 Add symbolizer_base constructor to all symbolizers. 2010-08-10 12:43:21 +00:00
Hermann Kraus
ada706844a Remove unused function. 2010-08-10 12:20:02 +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
Hermann Kraus
9857583064 Parse metawriter attributes in all symbolizers. 2010-08-10 12:03:45 +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
Dane Springmeyer
6da5983e94 add xinclude support for libxml2 based parser - thanks oldtopos - closes #567 2010-08-10 06:01:16 +00:00
Hermann Kraus
0fdf3a2463 Pass parameter as const&. 2010-08-07 20:03:05 +00:00
Hermann Kraus
fb7913619a Bug fix: Don't warn about undefined metawriter when no metawriter is assigned to a symbolizer. 2010-08-07 20:00:43 +00:00
Dane Springmeyer
ca2aec8463 remove unneeded mutex include 2010-08-07 17:54:45 +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
Artem Pavlenko
170c36b14b + correct SVG_RENDERER flag usage in src/SConscript 2010-07-29 10:10:37 +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
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
Hermann Kraus
20d5eb5698 Make "default-output" attribute optional. 2010-07-25 21:03:35 +00:00
Dane Springmeyer
dc99025348 make compile of svg renderer optional (but on by default) 2010-07-22 21:53:52 +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
Carlos López
f2a419bda7 Added template specialization svg_renderer<std::ofstream> to output SVG to file. Run tests/cpp_tests/svg_renderer_tests/file_output_test.cpp to generate one. 2010-07-21 07:43:13 +00:00
Carlos López
94e8ee3a9f Generation of output is now done through a stream iterator instead of the stream directly, which improves performance. Also made more compact generator for xml header, root element and bgcolor. 2010-07-21 03:34:46 +00:00
Dane Springmeyer
e021f27f96 explicitly convert doubles to int to avoid compiler warnings 2010-07-21 00:59:40 +00:00
Carlos López
07f329a538 Added generation of background color to svg_renderer. 2010-07-20 17:37:42 +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
91a109120b + align attribute names with W3C standards
rename 'bgcolor' to 'background-color'
+ update upgrade_map_xml.py
2010-07-19 12:01:34 +00:00
Artem Pavlenko
c943447509 + fix comment 2010-07-19 11:10:20 +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
51a791eb77 scons: only attach uninstall actions if actually uninstalling - #311 2010-07-18 21:26:50 +00:00
Dane Springmeyer
267b48de49 add ability to uninstall all tracked scons targets using an 'uninstall' argument like 'scons uninstall' - closes #311 2010-07-18 20:39:05 +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
Carlos López
d273101adc Added empty svg_renderer class, with unimplemented methods. 2010-07-15 05:32:31 +00:00
Dane Springmeyer
08e96be4a1 scons: better handling of PYTHON_INCLUDES and HAVE_LIBXML2 2010-07-15 00:20:50 +00:00
Dane Springmeyer
d549cfe30a scons: only apply HAS_CAIRO & HAS_PYCAIRO flags to cairo related files 2010-07-14 22:47:34 +00:00
Artem Pavlenko
a2909f30bf + call arrange_orienrtations which fixes polygon orientations 2010-07-14 15:52:15 +00:00
Artem Pavlenko
5c2f51504a + call base class ctor 2010-07-14 14:46:26 +00:00
Artem Pavlenko
c7770ce6b1 Scaled text of shield symbolizer
(cherry-picked from mapnik-resolution branch)
2010-07-14 13:51:27 +00:00
Hermann Kraus
7e10a32503 Created a class for metawriter_properties. 2010-07-14 10:34:18 +00:00
Dane Springmeyer
4d477a47cd scons: conditionally add CXXFLAGS for headers needing Cairo support 2010-07-14 04:40:33 +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
03d6ef98c9 Undo accidential change. 2010-07-13 20:27:06 +00:00
Hermann Kraus
b218480835 Added default attributes for metawriter. 2010-07-13 20:24:44 +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
Dane Springmeyer
9889517497 only print info about metawriter when in debug mode 2010-07-06 05:49:48 +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
4fbcb989c1 + fixed to_expression_string converter for
<expr>.match(<pattern>) operator
2010-06-29 11:56:42 +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
Dane Springmeyer
83f91867bc remove raster_symbolizer and line_pattern_symbolizer from agg_renderer, moved to src/agg in r1929 2010-06-24 19:51:51 +00:00
Artem Pavlenko
36928706bb + apply scale_factor in building sym 2010-06-24 16:02:50 +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
Artem Pavlenko
392ae66941 + catch config_error in color::color(str) ctor 2010-06-21 11:06:42 +00:00
Artem Pavlenko
088f18263c + reverting r1734 (alberto) 2010-06-21 10:48:26 +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
74850a4839 break out polygon_pattern_symbolizer 2010-06-20 03:56:03 +00:00
Dane Springmeyer
43bc58f158 break out text symbolizer 2010-06-19 21:01:30 +00:00
Dane Springmeyer
1566b486fa break out agg-based glyph, line, and polygon symbolizers 2010-06-19 20:52:44 +00:00
Dane Springmeyer
fd17b14120 restore rendering of default point_symbolizer square, useful for debugging 2010-06-19 20:32:00 +00:00
Dane Springmeyer
36a8e19ad4 fixup more enums as done in r1893 2010-06-19 05:27:11 +00:00
Artem Pavlenko
e81b1abb8f + add implementation files 2010-06-18 15:39:57 +00:00
Artem Pavlenko
cf26db081a + refactor path expressions parser 2010-06-18 15:39:32 +00:00
Artem Pavlenko
b6089295e7 + put enumerartion macros into mapnik namespace
( clang++ emmits errors otherwise)
2010-06-18 15:39:07 +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
f0d579f742 + fixed ctor 2010-06-15 13:43:27 +00:00
Artem Pavlenko
e572b83d3a + fix copy ctor in symbolizer_with_image 2010-06-15 13:36:41 +00:00
Artem Pavlenko
b27357848d + set opacity on markers_symbolizer 2010-06-15 13:36:33 +00:00
Artem Pavlenko
9c47291f88 + use text-opacity in text_renderer 2010-06-15 12:28:13 +00:00
Artem Pavlenko
f7fe6dbf15 + apply opacity and text-opacity 2010-06-15 12:28:06 +00:00
Artem Pavlenko
d69dfe6656 + update load/save opacity/text-opacity 2010-06-15 12:27:58 +00:00
Artem Pavlenko
d4643e6d87 + add get/set opacity impl 2010-06-15 12:27:50 +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
d0b1e62c2d + removed deprecated direct access to io_ptr 2010-06-14 13:18:09 +00:00
Artem Pavlenko
d410377f10 + corrected <defs> skipping logic 2010-06-14 10:29:37 +00:00
Artem Pavlenko
b309bba36e + pass scale_factor to feature_style_processor 2010-06-14 10:29:29 +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
Artem Pavlenko
d272326d88 + skip <defs>...</defs> 2010-06-11 14:09:05 +00:00
Artem Pavlenko
7f03186cdf + don't recentre SVG markers 2010-06-10 16:35:01 +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
d39ed1d364 + apply scale_factor in agg_renderer 2010-06-10 14:12:28 +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
4dcef9d1a3 + disable setting paths orientation 2010-06-10 14:11:55 +00:00
Artem Pavlenko
9d98df89f1 + parse 'transform' parameter 2010-06-10 14:11:48 +00:00
Artem Pavlenko
48921a412d + refactor (TODO!) 2010-06-08 11:14:31 +00:00
Artem Pavlenko
4a986bc5ff + format 2010-06-08 11:14:23 +00:00
Artem Pavlenko
2b3858df07 + cache SVG marker bounding box 2010-06-08 10:16:31 +00:00
Artem Pavlenko
c500451cd8 + refactor SVG parsing/rendering code into separate logical units
to facilitate multi-threading:
    * SVG data (todo: enforce const)
    * SVG parsing/reading mutable
    * SVG rendering (read-only access to the data)
2010-06-08 10:16:22 +00:00
Artem Pavlenko
a47f6214a7 + add markers_symbolizer.cpp 2010-06-06 12:10:36 +00:00
Dane Springmeyer
1b4f034ee5 add header needed for fopen on linux in jpeg_reader.cpp 2010-06-03 22:43:25 +00:00
Dane Springmeyer
6fc4d6f780 add support for reading jpeg images - closes #518 2010-06-03 21:24:58 +00:00
Dane Springmeyer
9804e7e90d scons: make libjpeg dependency optional (still required by default) 2010-06-03 19:50:27 +00:00
Dane Springmeyer
7d8bdb2f94 avoid compiler warning about uninittialized variable on osx 2010-06-03 18:46:13 +00:00
Artem Pavlenko
f67f6c4ec1 + add transformation matrix support 2010-06-03 12:36:00 +00:00
Artem Pavlenko
bc5730f006 + shield_symbolizer: support SVG images rendering
TODO: This is a first take, proper refactoring required!!!
2010-06-03 12:35:51 +00:00
Artem Pavlenko
5e43fefdba + don't qualify with mapnik:: namespace 2010-06-03 12:35:43 +00:00
Artem Pavlenko
d5a8f89d64 +load transform parameter in markers_symbolizer 2010-06-03 12:35:31 +00:00
Artem Pavlenko
f72fc9b397 + move transformation matrix to the parent class 2010-06-03 12:35:11 +00:00
Artem Pavlenko
b6414778d6 + add transformation matrix 2010-06-03 12:35:02 +00:00
Artem Pavlenko
816ebd2017 + remove mapnik:: (we're in mapnik namespace!) 2010-06-03 12:34:53 +00:00
Artem Pavlenko
ac468f05c2 + removed commented out lines 2010-06-03 12:34:45 +00:00
Artem Pavlenko
6cc6eac442 + move marker init out of geometry loop 2010-06-02 12:53:23 +00:00
Artem Pavlenko
246731874b + apply 'mapnik-format' to *.cpp *.hpp 2010-06-02 11:03:30 +00:00
Artem Pavlenko
9069df6492 + cleanup 2010-06-02 10:53:13 +00:00
Dane Springmeyer
218c75385d complete XML syntax change from CSSParameter to attributes (for BuildingSymbolizer and RasterSymbolizer) and update tests 2010-06-01 21:58:24 +00:00
Artem Pavlenko
484dce8943 + impl transform parameter (follow SVG spec) in point_symbolizer 2010-06-01 15:27:19 +00:00
Artem Pavlenko
b5362aa71a + tidy 2010-06-01 13:31:29 +00:00
Artem Pavlenko
9beb12b56b + split agg_renderer impl into different
translation units
+ add SVG support in point_symbolizer
2010-06-01 13:31:18 +00:00
Artem Pavlenko
12b74bc1cc + split agg_renderer implementation into diff
translation units
2010-06-01 13:31:08 +00:00
Dane Springmeyer
33145b18ae fix default initializations in markers_symbolizer 2010-05-30 16:09:39 +00:00
Dane Springmeyer
89f6b32b76 apply patch from Herm from #553 adding support for markers_symbolizer to Cairo renderer, new placement finder, and fill/spacing/overlap options - works nicely with new svg support being tested against markers_symbolizer 2010-05-30 03:16:51 +00:00
Dane Springmeyer
c9a4433666 make sure to return marker from cache, as noticed by Herm and mentioned in #553 2010-05-30 03:09:22 +00:00
Artem Pavlenko
f1986d1b85 + remove expat deps
+ correct includes
2010-05-28 16:34:58 +00:00
Artem Pavlenko
83c0f1ca59 + remove agg_svg_parser 2010-05-28 16:34:45 +00:00
Artem Pavlenko
a15e86e528 + add libxml2 based svg parser implementation 2010-05-28 16:34:34 +00:00
Artem Pavlenko
6a5ea3f1a1 + SVG markers rendering 2010-05-27 14:21:31 +00:00
Artem Pavlenko
bb0ae08280 + marker_cache impl 2010-05-27 11:41:02 +00:00
Artem Pavlenko
823b7ba0fc + SVG markers initial import 2010-05-27 11:19:09 +00:00
Artem Pavlenko
4584b05ff0 + small correction 2010-05-27 11:18:53 +00:00
Artem Pavlenko
e6e165f1e0 + use path-like geometries 2010-05-27 10:20:41 +00:00
Artem Pavlenko
cbf1356e4d + parse 'orientation' parameter 2010-05-27 10:20:10 +00:00
Artem Pavlenko
2085b3bc08 + apply orientation from text_symbolizer
+ fix building symbolizer
2010-05-27 10:20:03 +00:00
Artem Pavlenko
258a62616e + implement rotated text logic in placement finder 2010-05-27 10:19:47 +00:00
Artem Pavlenko
77c31e8643 + add orientation parameter
orientation="<expr>" e.g
  orientation="10+35" -> rotate by 45 degrees anti-clockwise
  (TODO: consider using standard SVG transform!)
2010-05-27 10:19:39 +00:00
Alberto Valverde
38e1570b8b added a max_value attribute to color_band to handle the case of the last band more gracefully 2010-05-06 07:21:11 +00:00
Dane Springmeyer
a688c36fdb serialize the experimental MarkersSymbolizer and avoid serializing defaults of GlyphSymbolizer unless requested 2010-04-15 21:42:28 +00:00
Dane Springmeyer
63ab05c112 ensure proper setting of allow_overlap and opacity when contructing a point_symbolizer without an image file 2010-04-15 06:09:21 +00:00
Artem Pavlenko
c20f16358c + save PolygobSymbolizer properties as attributes 2010-04-09 18:47:27 +00:00
Artem Pavlenko
23aac57a1f + use attributes instead of CssParameter 2010-04-09 18:47:19 +00:00
Artem Pavlenko
f776f8cd1e + add dash_offset 2010-04-09 18:46:41 +00:00
Artem Pavlenko
ca20f80ea8 + use attributes for LineSymbolizer properties 2010-04-09 18:46:33 +00:00
Artem Pavlenko
5fcc311764 + add stroke-dashoffset property
+ replace <CssParameter name='xxx'>yyy</CssParameter>
   element with 'xxx'=yyy attribute
2010-04-09 18:46:25 +00:00
Artem Pavlenko
5890f17df3 + directly ctor default mapnik::color to avoid css color parsing 2010-03-24 18:02:10 +00:00
Artem Pavlenko
1a2b320252 + sanitize header inclusion a bit 2010-03-24 18:01:53 +00:00
Alberto Valverde
c79865586b added an angle_mode attribute to GlyphSymbolizer to define the way the angle expression should be interpreted: as an azimuth or as a trigonometric angle 2010-03-22 11:21:17 +00:00
Alberto Valverde
a613dc6397 Created python binding to memory_datasource which can be added Features built programaticcaly. See tests for sample use until docs are done. #528 is almost closed. 2010-03-19 16:16:15 +00:00
Alberto Valverde
2e04c5422a fixed serialization of expressions in glyph_symbolizer 2010-03-19 11:20:16 +00:00
Alberto Valverde
2d601f1bd7 fixed color's to_string method since alpha seems to no longer be parsed as a double. serializing a color to xml and deserializing it back did not work before 2010-03-19 11:20:00 +00:00
Alberto Valverde
aea5dd563a XML de/serialization for glyph_symbolizer. Some issues remain regarding unicode expr 2010-03-19 11:19:43 +00:00
Alberto Valverde
1e2ffb22b7 cairo rendering for the glyph_symbolizer. Small refactoring in cairo_context::add_text to pass the paramaters which were picked up from the text_symbolizer param (size, fill, halo_radius and halo_fill) explicitly. This allows the glyph_symbolizer to piggy back on that functionality without specilizing add_text() for the glyph_symbolizer (which would have involved heavy amounts of copy+paste or a more elaborate refactoring strategy. Please ping me if this was not a good idea 2010-03-19 09:33:57 +00:00
Alberto Valverde
e91c41e494 removed unneeded parenthesis 2010-03-19 09:33:41 +00:00
Alberto Valverde
f5409000f3 cosmetic changes and comments 2010-03-19 09:33:25 +00:00
Alberto Valverde
d098c98c5e pre-eliminary GlyphSymbolizer implementation. TODO: XML de/serializing. more tests. remove workaround mentioned in test 2010-03-18 20:05:08 +00:00
Alberto Valverde
31c3d20e43 modified the old arrow_symbolizer interface on glyph_symbolizer and documented it 2010-03-18 20:04:51 +00:00
Alberto Valverde
fc3a1beeef initial skeleton of glyph_symbolizer (coarsely ported from arrow_symbolizer). Mapnik compiles but symbolizer does nothing useful yet and is going to be heavily modified to make use of expressions to be general enough to be usable for purposes other than rendering arrows representing vector direction/intensity 2010-03-18 20:04:35 +00:00
Artem Pavlenko
e7bfba10fe + enanble installation of mapnik2 side by side with mapnik 2010-03-17 21:03:02 +00:00
Artem Pavlenko
83b20c3036 Revert "re factor expression grammar/parser stuff"
This reverts commit c58b8c4f71813a2490cf135573009c92be1a90c4.
2010-03-15 21:08:56 +00:00
Artem Pavlenko
0f8deb5e73 re factor expression grammar/parser stuff 2010-03-15 21:08:46 +00:00
Dane Springmeyer
d7256295ae port r1680/r1683/r1690 from 0.7.1-dev branch to trunk 2010-03-12 18:23:06 +00:00
Alberto Valverde
e9748abc5f xml de/serialization support for RasterColorizer 2010-03-12 14:49:50 +00:00
Alberto Valverde
807881c47a XML deserialization support for a raster_symbolizer with a colorizer 2010-03-12 14:49:34 +00:00
Alberto Valverde
2f1d60b666 pre-eliminary raster coloring support 2010-03-12 13:34:13 +00:00
Dane Springmeyer
6b76b3b9e8 properly serialize the map_buffer when saving map 2010-03-11 23:21:22 +00:00
Dane Springmeyer
3a44dd3258 + use rint(v) instead of int(round(v)) + add rint implementation - msvc hasn't got one + minor cleanups 2010-03-11 23:19:12 +00:00
Artem Pavlenko
c3a0b1a72f + revert to a024c947499994e1e8aaaff2b8ea73a8eec489dd 2010-03-08 11:55:15 +00:00
Dane Springmeyer
b8511eca65 restore default behavior of PointSymbolizer when used without an image, by defaulting to 4x4 black pixel - TODO - expose colors, shapes, and size for this in the future 2010-03-03 03:26:12 +00:00
Dane Springmeyer
b540dab73b apply slighly modified (env->box2d) mapnik-trunk.mr.raster-position2.diff from mar_rud to close #475 2010-03-03 03:23:53 +00:00
Dane Springmeyer
dd36810321 print warning if images are not found 2010-03-02 03:31:50 +00:00
Dane Springmeyer
07186fc6bb ensure shapeindex links against boost system if available (boost >=1.35) to avoid potential problems in indirect linking on linux (essentially directly dynamically linking like we previously only did on os x) - closes #517 2010-02-21 01:00:09 +00:00
Dane Springmeyer
e03c997024 assume byteorder arrives in native arch (from postgis), and therefore ensure byteswapping for wkb on big endian systems - closes #515 - TODO check breakage in other plugins as per #516 - thanks Brad Simpson for the report and fix 2010-02-19 07:50:47 +00:00
Dane Springmeyer
2cd0b55e88 enforce default gamma function - improves upon #428, closes #512 2010-02-09 17:28:17 +00:00
Dane Springmeyer
c3ea59c3c8 don't pass expression_ptr as const 2010-02-03 18:36:01 +00:00
Artem Pavlenko
05f5473924 + correct image bonding box calculation
+ check for zero sized images
2010-02-03 12:19:49 +00:00
Dane Springmeyer
ede29a1aff image 'type' is not longer needed or used so don't attempt to parse from XML 2010-02-01 21:32:09 +00:00
Dane Springmeyer
1af24f1eb8 Serialize FontSet instead of font_set as that is what the loader expects 2010-02-01 21:31:14 +00:00
Dane Springmeyer
c950e38a46 reenamble python access to TextSymbolizer 'name' expression 2010-01-30 03:08:03 +00:00
Dane Springmeyer
d599067a14 restore pretty printing of xml output (indent=4) now that we are using the new boost ptree which changed its defaults 2010-01-30 02:05:01 +00:00
Dane Springmeyer
aef4d350be repair serialization of XML filters and Text/ShieldSymbolizer 'name' attribute, which are how properly converted from expressions into strings 2010-01-30 00:47:06 +00:00
Dane Springmeyer
b1660b2152 fix formatting 2010-01-30 00:44:35 +00:00
Dane Springmeyer
da8ddb09ab gah, use the version header that actually exists for older versions of icu 2010-01-29 19:40:26 +00:00
Dane Springmeyer
05654f18bc quick fix to allow compiling without unicode regex support to enable builds against ICU <4.2 2010-01-29 19:22:15 +00:00
Dane Springmeyer
9b69f65ea9 add backwards compatibility support to the expressions parser so that the TextSymbolizer and ShieldSymbolizer 'name' parameter (and others in the future) syntax is understood as pre-0.8.0 syntax, while printing a deprecation warning - should allow older stylesheets to be used with Mapnik 0.8.0 - addresses #501 2010-01-26 23:03:42 +00:00
Dane Springmeyer
52d08e7d1a restore reading of paths relative to xml as default=true, print xml filename when errors are encountered, and remove unneeded check for pointsymbolizer file type which is now automatically handled in parse_path() 2010-01-26 22:54:03 +00:00
Dane Springmeyer
0fbd46a045 report the map/xml name when an error is encountered when loading a map 2010-01-25 19:10:01 +00:00
Dane Springmeyer
6115a1590d add 'gamma' attribute to PolygonSymbolizer, along with tests against simplified world borders shapefile - setting gamma to .5-.7 can remove gaps in processed_p.shp depending on background color - closes #428 2010-01-13 00:31:45 +00:00
Dane Springmeyer
067fdb884d sync trunk with new cairo support added previously to 0.7 branch in r1531 2010-01-11 18:55:30 +00:00
Dane Springmeyer
e5673e239b increment ABI versions 2010-01-11 18:53:50 +00:00
Dane Springmeyer
f87790cd5b merge a few small 0.7 branch changes back into trunk 2010-01-11 00:36:51 +00:00
Dane Springmeyer
6abbfca492 fix default values for vertical_alignment in the TextSymbolizer and ShieldSymbolizer - closes #468 2010-01-07 02:21:07 +00:00
Dane Springmeyer
9750e6cd24 fix memory leak in load_map when using libxml2 by freeing the libxml tree as per http://xmlsoft.org/xmlmem.html - closes #473 - thanks mishok13 for the detailed report and testing 2010-01-01 22:41:43 +00:00
Artem Pavlenko
47dc1e197b + merge mapnik2 to trunk 2009-12-16 20:02:06 +00:00
Dane Springmeyer
5e2e6a76ad apply fixes from David Eastcott originally applied to 0.7 branch 2009-12-13 23:30:36 +00:00
Dane Springmeyer
bd0a1ee08f cherry pick one more changeset from mapnik2 into trunk 2009-12-07 06:43:02 +00:00
Dane Springmeyer
c01d1d0c69 integrate a few changes from mapnik2 branch - making sure to pass strings by const ref + formatting 2009-12-07 04:15:17 +00:00
Dane Springmeyer
fe3ffe6c2d rename map.save_map_string to map.save_map_to_string 2009-12-06 22:33:47 +00:00
Dane Springmeyer
d0b4db9ba3 add support for relative paths for entities when using libxml2 and loading xml from string - thanks dodobas for the initial patch 2009-12-06 22:18:45 +00:00
Dane Springmeyer
0e18aa63cd add feature to Map node to allow for throwing a friendly error if the map styles use features not supported by the installed mapnik version - thanks Ldp for the review - closes #395 2009-12-05 03:58:48 +00:00
Dane Springmeyer
b104253d9c Add ability to link to custom icu lib name, and remove the unneeded linking to icudata on osx, while offering compiler flags required for compiling against libicucore provided by Apple 2009-11-24 20:32:41 +00:00
Dane Springmeyer
75d67f4b43 only serialize non-default values for layers as well as styles 2009-11-16 00:04:47 +00:00
Dane Springmeyer
b89f468eaf add support for using CDATA with libxml2 parser. New tests for filters work nicely - TODO add datasource tests for CDATA in sql 'table' param 2009-11-11 23:37:57 +00:00
Artem Pavlenko
d2f3e669b0 * correct operator= implementation 2009-11-08 10:35:36 +00:00
Dane Springmeyer
4df684c50e PointSymbolizer serialization was missing 'opacity' and 'allow_overlap' 2009-11-06 20:56:34 +00:00
Artem Pavlenko
a3a5859466 Patch from David Eastcott :
1.  Modified Text Symbolizer

  a) corrected line fragment centering (for 2nd and subsequent lines, when line breaks occur).

  b) adjusted vertical alignment calculation so that:
      i)      middle -> has the center of the text line(s) at the point origin
      ii)     bottom -> has the text line(s) below the point origin
      iii)    top -> has the text line(s) above the point origin

  c) added new text_symbolizer attribute: 'wrap_before', value range: true/false, default == false

     allows line breaks at first wrap_char before wrap_width as an alternative to the original
     which was to create the line break at the first wrap_char after wrap_width

  d) added new text_symbolizer attribute: 'horizontal_alignment', value range: left/middle/right, default == middle
      i)      left -> has all text line(s) to left of the point origin
      ii)     middle -> has all text line(s) centered on the the point origin
      iii)    right -> has all text line(s) to the right of the point origin

      NOTE:   dx, dy position adjustments are applied after alignments and before Justify.

  e) added new text_symbolizer attribute: 'justify_alignment', value range: left/middle/right, default == middle
      i)      left -> after alignments, has all text line(s) are left justified (left to right reading)
      ii)     middle -> after alignments, has all text line(s) center justified
      iii)    right -> after alignments, has all text line(s) right justified (right to left reading)

  f) added new text_symbolizer attribute:  'opacity', value range: 0.0 thru 1.0; 1.0 == fully opaque

  g) modified positioning to compensate for both line_spacing and character_spacing, to ensure proper
     centering of the text envelope.  Also ensure that centering occurs correctly even if no wrapping
     occurs.  Line spacing is uniform and consistent and compensates for errors between text_size and
     the actual size (ci.height is inconsistent, depending on case and character); fixes issue with
     multi-line text where some lines have a slight gap and others are compressed together.


2.  Modified shield_symbolizer

  a) added the attributes:
      i)      allow_overlap
      ii)     vertical_alignment
      iii)    horizontal_alignment
      iv)     justify_alignment
      v)      wrap_width
      vi)     wrap_character
      vii)    wrap_before
      viii)   text_convert
      ix)     line_spacing
      x)      character_spacing
      xi)     opacity

  b)  added new shield_symbolizer attribute: 'unlock_image', value range: true/false, default == false
      i)  false == image and text placement behaviour same as before
      ii) true == image placement independant of text, image is always centered at geometry point, text placed per attributes,
                  dx/dy only affect text.

      Allows user to create point markers with text, but both the text and image rendering collision detection are done
      as a pair (they come and go together - solves problem if using point_symbolizer and text_symbolizers where one or the
      other are omitted due to overlaps, but not both)

  c)  extended choices for the attribute 'placement' to include vertex; effect is limited to the shield_symbolizer

      Allows an attempted placement at every vertex available, gives additional shield placement volume when using line geometry

  d)  ensured that the text placement was not updating the detector unless a shield image was actually placed.

  e)  added new shield_symbolizer attribute: 'no_text', value range: true/false, default = false

      When set true, the text for the feature is ignored ('space' subsituted) so that pure graphic symbols can be used
      and no text is rendered over top of them.
2009-10-19 13:52:53 +00:00
Dane Springmeyer
5fccc3ae62 improve formatting of error message during xml loading if document is not well formed 2009-09-28 17:35:50 +00:00