Commit graph

179 commits

Author SHA1 Message Date
Alberto Valverde
97431c8de4 made mesh_size configurable 2011-09-16 12:21:21 +00:00
Hermann Kraus
e877b6197a Support new Shield/TextSymbolizer syntax. 2011-09-16 00:02:42 +00:00
Dane Springmeyer
67d7a3a6f0 add alternative line rasterizer that can be enabled to draw faster lines at the expense of dropping short geometries - for thin lines has nicer look but should not be used with think lines - refs #873 2011-09-09 23:45:49 +00:00
Dane Springmeyer
aa5cfad4b7 add minimum-path-length to text_symbolizer - closes #865 2011-09-04 17:33:48 +00:00
Dane Springmeyer
9e87c9f914 apply patch from Peter Körner adding AlsoFilter functionality - closes #820 2011-08-30 17:38:27 +00:00
Dane Springmeyer
476e04c4c7 add gamma to polygon-pattern-symbolizer, useful for avoiding AA affects at tile edges so that global patterns can have seamless alignment 2011-06-28 22:37:35 +00:00
Dane Springmeyer
7a17c7e597 load_map_from_string has always accepted a base path argument to drive the interpretation of relative paths in the stylesheet when loaded in memory- this really should be a full map property so that it can be known on the map object after parsing and changed if the map is saved to a new location 2011-05-25 23:48:07 +00:00
Dane Springmeyer
9458e2d890 stroke-dash-offet -> stroke-dash-offset (spelling)- #762 2011-05-17 00:33:24 +00:00
Dane Springmeyer
d05b0c539f apply major refactor of RasterColorizer by ben moores from https://github.com/BenMoores/mapnik-trunk/wiki/RasterColorizer - closes #523 2011-05-04 00:20:17 +00:00
Dane Springmeyer
f8b3a4b946 add serialization of all markers_symbolizer attributes 2011-04-18 01:17:57 +00:00
Dane Springmeyer
7570cb5d73 load and save the new map 'maximum-extent' attribute 2011-04-14 02:32:51 +00:00
Artem Pavlenko
e580078d26 + apply MetaWriter patch from zerebubuth
( see #735 for details )
2011-03-16 13:32:04 +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
154dc59c5a serialize all dashes, no underscores, as per #644 2011-02-05 03:11:09 +00:00
Dane Springmeyer
50532801f3 change min_distance and min_padding to minimum_distance and minimum_padding to match python and mimimum_version 2011-02-02 04:20:53 +00:00
Dane Springmeyer
c8b816e498 add missing serialization of marker width and height 2011-02-02 03:47:52 +00:00
Dane Springmeyer
3197bea9ee add missing serialization of max_char_angle_delta and label_position_tolerance 2011-02-02 03:42:15 +00:00
Dane Springmeyer
c52c91c98a serialize point_placement 2011-02-02 02:17:06 +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
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
ed22d073c3 fix serialization of missing shield symbolizer properties 2010-12-11 02:07:47 +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
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
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
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
Hermann Kraus
24fb874c7d Add metawriter support to save_map.cpp 2010-08-12 00:11:01 +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
8b8e247e62 + add support for background-image attribute
( background image is repeated both vertically
   and horizontally )
2010-07-19 11:10:03 +00:00
Hermann Kraus
384c703557 Remove unneeded headers from save_map.{cpp,hpp} 2010-07-19 00:21:53 +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
Artem Pavlenko
cf26db081a + refactor path expressions parser 2010-06-18 15:39:32 +00:00
Artem Pavlenko
d69dfe6656 + update load/save opacity/text-opacity 2010-06-15 12:27:58 +00:00
Artem Pavlenko
246731874b + apply 'mapnik-format' to *.cpp *.hpp 2010-06-02 11:03:30 +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
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
Artem Pavlenko
6a5ea3f1a1 + SVG markers rendering 2010-05-27 14:21:31 +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
Artem Pavlenko
c20f16358c + save PolygobSymbolizer properties as attributes 2010-04-09 18:47:27 +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
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
2e04c5422a fixed serialization of expressions in glyph_symbolizer 2010-03-19 11:20:16 +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
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
Alberto Valverde
e9748abc5f xml de/serialization support for RasterColorizer 2010-03-12 14:49:50 +00:00
Dane Springmeyer
6b76b3b9e8 properly serialize the map_buffer when saving map 2010-03-11 23:21:22 +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
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
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
Artem Pavlenko
47dc1e197b + merge mapnik2 to trunk 2009-12-16 20:02:06 +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
75d67f4b43 only serialize non-default values for layers as well as styles 2009-11-16 00:04:47 +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
286ad12c47 add method to save a map to a string (closes #396) 2009-07-24 06:15:58 +00:00
Dane Springmeyer
e0c9e5c826 add missing serialization of building symbolizer height, be explicit of double in polygon_symbolizer 2009-07-24 06:10:42 +00:00
Artem Pavlenko
85ecc33d7f + applied patch from Jochen Topf :
* text_convert="none|toupper|tolower"
 Convert all text to upper/lower case before rendering. "none" doesn't do
 anything with the text and is the default. Works for labels along lines
 or at points.

* line_spacing="<number>"
 Add this many pixels space between two lines in text labels that have
 been broken into several lines. Default is 0. Doesn't do anything for
 labels along lines.

* character_spacing="<number>"
 Add this many pixels space between two characters in a text. Default is 0.
 Currently only works for text labels on point geometries. This should
 also be implemented for labels along lines, but I'll leave that for
 another day.

* wrap_character="<character>"
 Instead of breaking text into lines on spaces, use this character. This
 is useful, when you want to make sure that labels are broken at the right
 spot. Note that you'll probably want to make wrap_width small so that
 your lines are actually broken, otherwise you'll see the wrap_character
 in the output. Default is ' ' (space). Doesn't do anything for labels
 along lines.
2009-07-20 15:30:19 +00:00
Artem Pavlenko
71786bff63 + applied patch 'avoid_edges' from albertov, thanks! 2009-06-25 20:06:01 +00:00
Dane Springmeyer
7d9ac2a094 add missing include 2009-05-19 22:59:56 +00:00
Dane Springmeyer
fd98a4a49a shuffle guess_type to image_utils for logical re-use 2009-05-19 22:43:54 +00:00
Lucio Asnaghi
eaa49ca028 + applying patch proposed by dane that add explicit_defaults selection when saving maps (closes #327) 2009-04-28 21:44:34 +00:00
Artem Pavlenko
10f55a678b + add support for vertical_alignment (text_symbolizer)
valid values are : top, middle, bottom
  default to middle which can now center multi-line text
2009-03-30 20:47:26 +00:00
Artem Pavlenko
2eec236fc2 + applied "hill shading" patch from Marcin Rudowski
a) Raster opacity
   b) Raster merging modes (TODO:add more modes, consider agg impl)
   c) Raster scaling algos: fast,bilinear,bilinear8
      (TODO: add alpha support in bilinear8) 
   d) improvements to png256

   *Great work, thanks!*
2009-03-29 11:05:20 +00:00
Artem Pavlenko
78f10770ec mapnik-polygon-symbolizer-wants-fill-opacity.patch (jonb)
The save_map & load_map disagree about the name of the CSS parameter
 for the opacity in PolygonSymbolizer. Make them consistent changing
 save_map to output fill-opacity.
2009-01-21 15:41:44 +00:00
Artem Pavlenko
387ff213ef + mapnik-serialize-fontset.patch from jonb
This adds the fontset support into save_xml
 - Adds fontset_name into the text attributes
 - Adds the fontset definitions
 - glue to read fontsets from map
2009-01-17 20:18:41 +00:00
Artem Pavlenko
a07767ef3d + (c++) renamed mapnik::Color to mapnik::color
+ (c++) added mapnik::color ctor from named colours (TODO: consider not to export color_factory) 
+ (Python) fixed pickling
+ (Python) added to_hex_string method
2009-01-14 12:10:24 +00:00
Dane Springmeyer
a97bbb52af Avoid serialization of maxzoom if value is infinity (default) 2009-01-11 20:09:32 +00:00
Dane Springmeyer
68e784dfdd + add load_map() and save_map() support for reading and writing of abstract, title, minzoom, maxzoom, and queryable attributes 2009-01-11 18:55:29 +00:00
Artem Pavlenko
8d51cb421b 1. re-factored placement_finder to be more efficient. 'find_*' methods are templated on PathType.
2. PostGIS plug-in - optional 'multiple_geometries' parameter to control how Multi* geometries built. 
3. MarkersSymbolizer (work in progress) to render vector shapes (markers) alonh a path with collision detection.
2007-11-02 12:50:15 +00:00
David
bc54b150ea - reversed header include order 2007-10-08 17:42:41 +00:00
David
b2df387a9d - merged strict-xml-branch r530:532 to trunk:
- libxml2 support
    - strict error handling while parsing XML map files
    - implemented save_map()
    - removed some duplicate defaults
    - all symbolizers with icons share a common base class now
2007-09-25 18:47:12 +00:00
Artem Pavlenko
c8042c959f removed boost::foreach.hpp 2006-10-04 18:54:27 +00:00
Artem Pavlenko
992af4747d 1. move include to mapnik/include
2. update demos,bibdibgs etc.
2006-10-04 11:22:18 +00:00
Artem Pavlenko
c1cce2742f added missing header 2006-10-03 10:04:28 +00:00
Artem Pavlenko
88892c196b added save/load functionality based on boost::property_tree (aka ElementTree in c++) 2006-10-03 08:39:43 +00:00