Skip to content

Latest commit

 

History

History
183 lines (164 loc) · 12.8 KB

CHANGELOG.creole

File metadata and controls

183 lines (164 loc) · 12.8 KB

0.10.5 release 2015-05-05

  • DB/Overpass: download from API in blocks, to avoid huge memory consumption. specify db.overpass-blocksize (default: 64MB).
  • Icon handling from 0.10.4 also for ol4pgm
  • Update Maki icons

0.10.4 release 2015-03-11

  • DB/Overpass: set max allowed memory by config option db.overpass-memory
  • DB/Overpass: load full response at once; this greatly improves performance, but needs more memory.
  • Bugfix :lefthandtraffic / :righthandtraffic (use correct SRIDs) -> need database re-initialization (-r init)
  • When converting SVGs to PNGs, keep transparent background (e.g. for image resp. repeat-image); Mapnik 3.0 still does not support SVGs for LinePatterns (auto-convert SVG to PNG)
  • Icons (icon-image): maki icons may be the result of an eval expression. Other icons must have a '.' in their file name.
  • possible values from eval function tag() -> this allows the pre-processor to guess possible values of a tag, when it was set earlier in the code by a set-statement. Can be used to e.g. set the value of icon-image to the value of a previously set tag (the image might need to be copied icons/-directory, e.g. for Maki icons).

0.10.3 release 2015-03-03

  • DB/Overpass improvements
    • Ignore ways with less than two nodes
    • Catch timeout from Overpass API (set timeout via config option db.overpass-timeout)
    • improved error messages
  • some minor bugfixes

0.10.2 release 2015-02-23

  • Bugfixes
  • Update Maki icons

0.10.1 release 2015-01-18

  • Some fixes concerning the DB/Overpass backend
  • Compatibility Python 3.4
  • Update Maki icons
  • some minor bugfixes, see Git log for details

0.10.0 release 2015-01-04

  • New database backend 'overpass', which is also the new default database backend, including multipolygon support, relationship queries, ...
  • DB/osm2pgsql can optimize some queries with relationships. (e.g. relation[type=route] member)
  • Re-structured and simplified code for database backends, see doc/database-API.md for details.
  • new internal module PGCache which can be used to cache data (with different backends, depending on writeability of the database)
  • improved installation instructions (doc/Install_with_Mapnik_3.0.md or doc/Install_with_Mapnik_2.2.md)
  • improved eval tests (also using standalone mode; choose which tests to run)
  • geometric eval functions now catch and print errors

0.9.3 release 2015-01-03

  • bugfixes

0.9.2 release 2014-12-26

  • Mode standalone/CGI: accept z/x/y and zoom/x/y coordinates
  • DB/Osmosis: support for hide_outer_ways column (osmosis-multipolygon v0.3)
  • bugfixes

0.9.1 release 2014-12-02

  • advanced database options: db.search_path, db.hstore_key_index
  • updated Maki icons
  • bugfixes (especially regarding SRS)

0.9.0 release 2014-11-02

  • support osmosis pgsnapshot as alternative database backend, see database docu for details
  • new 'standalone' mode, which compiles mapcss into a python executable which can be used from command line or as CGI script
  • pseudo tags 'osm:id' (osm2pgsql and osmosis), 'osm:version', 'osm:user_id', 'osm:user', 'osm:timestamp', 'osm:changeset' (osmosis only), see database docu for details
  • removed command line options (-o, --options) and merged them into config options (-c, --config). See doc/config_options.md for a full list.
  • new eval functions: parameter(), lang(), localized_tag()
  • Improved SQL queries to select map features from database; now [key!=value] will also select features without key set.
  • Debugging: new option 'debug.rusage' to show resource usage; 'debug.explain_queries' to list and count queries and show their plans (standalone mode only); 'debug.counter' shows how many map features were rendered - set to 'verbose' to list each map feature which was read from the database but not rendered.
  • Support databases with geometries in a different Spatial Reference System, see config db.srs in doc/config_options.md.
  • if no bounding box is given (to the database function or the standalone executable), the whole database will be queried
  • Language support (see chapter "Language support" in MapCSS docu
  • enable usage for tag checking, see tagchecker docu for details
  • near selector (e.g. node near node) does no longer include the current object
  • New property type 'list_append' (add value to existing list)
  • Performace improvements (especially memory usage has been drastically reduced), and many bugfixes (and many new bugs!)

0.8.1 release 2014-10-19

  • Bugfixes

0.8.0 release 2014-09-14

  • support @media queries, see MapCSS docu
  • a lot of performance improvements, including:
    • Reduced the amount of database columns used in Mapnik stylesheets
    • remove Mapnik rules if they are not used anyway
    • group similar selectors together for compiled code
    • set default values after processing an object; set default values only if main property is set (e.g. an object without 'text' does not need 'font-family')
  • Config option 'angular_system', whether angles (rotation, azimuth functions) should use degrees or radians
  • commandline option -D to load additional defaults (either pre-defined, currently 'josm' or 'overpass-turbo') or local file
  • Support for Mapnik 2.3 (mostly similar to Mapnik 2.2, but there are some advanced features); Improved and adapted support for Mapnik 3.0 (as features in Mapnik were added).
  • Eval functions:
    • changed parameter order for join() and split()
    • new eval functions: viewport(), intersection(), range(), reverse(), is_left_hand_traffic(), is_right_hand_traffic(), line_locate_azimuth(), red(), green(), blue(), alpha(), URL_encode(), XML_encode(), CRC32_checksum(), regexp_text(), regexp_match(), floor(), ceil(), length(), is_prop_set(), has_tag_key(), sin(), cos(), tan(), asin(), acos(), atan(), atan2(), sinh(), cosh(), tanh(), signum(), log(), exp(), replace(), JOSM_pref(), JOSM_search(), keys_of_tags(), number_of_tags(), tr(), hsv() resp. hsv_color()
    • Deprecations: substr() renamed to substring()
    • support inline condition operator: (condition?if_true:else)
    • an identifier may no longer contain ':' (because of inline condition operator)
    • an identifier may contain # (e.g. colors)
    • calculations and functions like min() and max() no longer accept input with units -> instead of min('100m') use min(metric('100m'))
  • Selectors, Conditions (improve compatibility with JOSM MapCSS paint styles):
    • List selector: @= any of the given, e.g. [highway@=primary;secondary]
    • Negated regular expression match: !~
    • Testing for truth/false value: [tag?], [tag?!]
    • Presence of tag by regular expression: [/^addr:/]
    • Support for the following pseudo classes: :closed, :connection, :unconnected, :tagged, :righthandtraffic, :lefthandtraffic
    • Negate classes and pseudo classes: way!:closed, way!.class
    • Link selector '∈' or 'within': objects within another object
    • Link selector '∋' or 'surrounds': objects surrounded by another object
    • Link selector '⧉' or 'overlaps': objects which overlap but are not completely contained by each other
    • Support JOSM classes (set without prepending dot, e.g. 'set foo;'); need to enable with flag
  • Properties (improve compatibility with JOSM MapCSS paint styles):
    • properties of type pixel (e.g. width, offset) accept relative values (added to value on default pseudo element)
    • New properties: icon-rotation, dashes-background-color, dashes-background-opacity, casing-dashes-background-color, casing-dashes-background-opacity; text-offset, text-anchor-vertical, text-anchor-horizontal, repeat-image, repeat-image-offset, miterlimit, casing-miterlimit, text-allow-overlap, symbol-allow-overlap, symbol-ignore-placement, icon-allow-overlap, icon-ignore-placement
    • Support left-casing-* and right-casing-* (with the same suffixes as casing-*)
    • symbol-* as in JOSM, plus symbol-rotation
    • Properties 'image', 'repeat-image', 'fill-image': for Mapnik 2.x, SVGs will automatically be converted to PNGs
    • text-position: Texts on lines will by default be printed on the line
    • Accept colors in hsv()
  • Lot's of bugfixes, see Git log for details
  • A new dependency: python3-wand

0.7.0 release 2014-05-20

  • Until 0.6 eval() expressions could not be used with many properties (e.g. width, color, ...). Now possible return values have to be predictable, therefore you can use e.g. width: eval(cond(zoom() > 6; zoom() * 2; 15)); or color: eval(lighten(rgb(0.5, 30, 20), 1)).
  • The possiblity to mix MapCSS code with normal Mapnik layers, see file basemap_example.mapcss.
  • Included icon set (Mapbox Maki), used with e.g. "icon-image: bicycle"
  • Support for eval()-Selectors, e.g. line[eval(....)] - matches if result is not 'false', 'no' '0' or ''
  • The rendering order has changed; icons, shields and labels are rendered last (by default)
  • no need to wrap eval functions by eval(...), you can use e.g.: width: 2*5;
  • Most properties are now typed, values will be checked for validity when assigning
  • Colors: support for CSS3 color names (e.g. "red") and short notation (e.g. #f00)
  • The compiled mapnik stylesheet contains less generated rules (they will be generated per pseudo element), reducing rendering time
  • An improved example stylesheet (test.mapcss)
  • Improve support for Mapnik 3.0 (rename expr-v2 -> mapnik-3.0)
  • Support for Postgis 2.x
  • new eval functions: style_id(), substr()

0.6.0 release 2014-02-04

  • pgmapcss no longer compiles into PL/pgSQL functions, as this database language is really slow. From 0.6 on pgmapcss creates one big PL/Python3 function, allowing faster execution (many times faster - from about twice for simple styles, up to 20 times complex styles - not counting database queries and Mapnik rendering time) and more advanced features (which will be implemented in future versions). Right now the functionality is more or less equal to version 0.5.
  • Allow "way > node" and "node < way" relations.
  • support for the expr-v2 branch of Mapnik, allowing calculations on colors; the eval functions rgb(), rgba(), deluma() and lighten() were added.

0.5.1 release 2014-01-28

  • Lot's of bugfixes, see Git log for details

0.5.0 release 2014-01-10

  • Complete rewrite of parser, compiler and preprocessor in Python3.
  • Optimizations:
    • only style-elements that will result in a symbol are returned, controlled by the @style_element_property define.
    • check validity of properties of their main property is set (see @depend_property)
    • cond() does no longer calculate the values of both paths. (compile to a (CASE WHEN ... THEN ... ELSE ... END) construct)
  • New eval functions / operators: zoom, scale_denominator, switch, power, and (&&), or (||), not (!), centroid
  • New style properties: offset, casing-offset (Mapnik 2.2 only)
  • Bugfixes (and new bugs due to the rewrite!)

0.4.0 release 2013-10-14

  • Mostly compatible with MapCSS 0.2 (Rendering order, CSS properties):
    • new CSS properties: casing-*, layer, font-family -weight -style, text-transform, shield-*, canvas{ fill-color, fill-image }
    • MapCSS 0.2 compatible link selectors, way->node relations
    • @import
    • text, shield-text read either the value of a tag or a quoted string / eval expression
  • Compatibility with Mapnik 2.0 and 2.2 (use -t on load.sh to choose version)
  • Re-implement eval-parser (as the old one was really buggy)
    • new eval functions: parent_geo(), locate_point(), line(), azimuth(), rotate(), translate(), int(), num(), rename number() to metric(), str(), round(), text_transform(), osm_id()
    • fix/add operators: ==, !=, <>, eq, ne, ===, !==, .
  • Control behaviour of properties with @type, @values, @default_other, @postprocess
  • New installation instructions
  • generate_image.py to render image

0.3.0 release 2013-09-03

  • Add link selectors '>', '<', 'near'
  • Statement 'combine' to combine multiple features into one
  • Support properties 'image', 'icon-image', 'fill-image', 'text-spacing'
  • Add tag 'osm_id' from the object's id
  • New eval functions: parent_tag(), link_tag(), unqiue(), sort(), natsort(), line_merge(), convex_hull()
  • Eval functions min(), max() accept list as input
  • Accept eval()-statement in selector conditions
  • New Examples: highest peaks, combined roads, tramway network
  • Lots of bug fixes :-)

0.2.0 release 2013-08-23

  • simpler database query in .mapnik stylesheet using {style_id}_match(), optimizing queries for every zoom level for index usage
  • pre-process mapnik-stylesheet; create rules for every calculateable combination of options; default values in default.mapcss
  • accept values with units (e.g. 2px, 30m)
  • introduce properties for most MapCSS 0.2 options
  • a lot of improvements to parser and compiler
  • more eval-functions; list-functions; geometry-functions
  • add 'examples' folder
  • check compatibility with MapServer, GeoServer
  • load.sh, install.sh: accept parameters; see --help

0.1.0 first public release 2013-08-03