Commit graph

96 commits

Author SHA1 Message Date
Hermann Kraus
9857583064 Parse metawriter attributes in all symbolizers. 2010-08-10 12:03:45 +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
5725c694c6 Add "only-nonempty" to XML config. 2010-08-02 12:37:15 +00:00
Hermann Kraus
87fd78f313 Add support for dynamic filename in metawriters. 2010-07-25 22:41:18 +00:00
Hermann Kraus
20d5eb5698 Make "default-output" attribute optional. 2010-07-25 21:03:35 +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
Dane Springmeyer
08e96be4a1 scons: better handling of PYTHON_INCLUDES and HAVE_LIBXML2 2010-07-15 00:20:50 +00:00
Hermann Kraus
7e10a32503 Created a class for metawriter_properties. 2010-07-14 10:34:18 +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
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
70b2453065 + add explicit support for shield displacement
(NOTE:text displacement is relative shield!)
2010-06-28 21:32:30 +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
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
b27357848d + set opacity on markers_symbolizer 2010-06-15 13:36:33 +00:00
Artem Pavlenko
d69dfe6656 + update load/save opacity/text-opacity 2010-06-15 12:27:58 +00:00
Artem Pavlenko
9d98df89f1 + parse 'transform' parameter 2010-06-10 14:11:48 +00:00
Artem Pavlenko
d5a8f89d64 +load transform parameter in markers_symbolizer 2010-06-03 12:35:31 +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
Artem Pavlenko
484dce8943 + impl transform parameter (follow SVG spec) in point_symbolizer 2010-06-01 15:27:19 +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
Artem Pavlenko
cbf1356e4d + parse 'orientation' parameter 2010-05-27 10:20:10 +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
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
23aac57a1f + use attributes instead of CssParameter 2010-04-09 18:47:19 +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
aea5dd563a XML de/serialization for glyph_symbolizer. Some issues remain regarding unicode expr 2010-03-19 11:19:43 +00:00
Alberto Valverde
807881c47a XML deserialization support for a raster_symbolizer with a colorizer 2010-03-12 14:49:34 +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
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
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
Artem Pavlenko
47dc1e197b + merge mapnik2 to trunk 2009-12-16 20:02:06 +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
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
5c184a5075 load_map: improve formatting of error message within layer 2009-08-27 04:48:32 +00:00
Dane Springmeyer
8850d19bfc in load_map, fix type declaration for dx,dy as double 2009-07-24 07:24:36 +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
Dane Springmeyer
07597bc594 fix interpretation of SheildSymbolizer displacement values as doubles in load_map.cpp- closes #353 2009-06-01 02:13:32 +00:00
Dane Springmeyer
8d6c5dac6b fix interpretation of TextSymbolizer displacement values as doubles in load_map.cpp- closes #353 2009-06-01 02:11:07 +00:00
Dane Springmeyer
6c8a5f805a xml: make sure to explicitly declare the default relative_paths option as true - thanks Ldp 2009-05-06 23:42:28 +00:00
Dane Springmeyer
404a43f5f0 +ensure relative paths to symbols and datasources in xml are based on working directory of xml file, added 'paths_from_xml' parameter that is true by default but can be made false to maintain previous behavior - closes #326 (has no effect on load_map_from_string) 2009-05-01 01:59:01 +00:00