| 1 | # $Id: CHANGELOG 776 2008-12-7 01:30:27Z dane $ |
|---|
| 2 | |
|---|
| 3 | ---------------- |
|---|
| 4 | Mapnik Changelog |
|---|
| 5 | ---------------- |
|---|
| 6 | |
|---|
| 7 | A simple log of core changes affecting Mapnik usage. |
|---|
| 8 | |
|---|
| 9 | Developers: Please commit along with changes. |
|---|
| 10 | |
|---|
| 11 | For a complete change history, see the SVN log. |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | Mapnik Trunk |
|---|
| 15 | ------------ |
|---|
| 16 | |
|---|
| 17 | - Optimized rendering speeds by avoiding locking in the projection code (r2063) |
|---|
| 18 | |
|---|
| 19 | - Added support for setting global alignment of polygon pattern fills (#203) |
|---|
| 20 | |
|---|
| 21 | - Added support for choosing OGR layer by index number using 'layer_by_index' parameter (r1904) |
|---|
| 22 | |
|---|
| 23 | - Added support for reading jpeg images (in addition to png/tiff) for image symbolizers (#518) |
|---|
| 24 | |
|---|
| 25 | - Made libjpeg dependency optional at compile time and added mapnik2.has_jpeg() method to check for support in python (#545). |
|---|
| 26 | |
|---|
| 27 | - Fixed reading of PostGIS data on Big Endian systems (#515) |
|---|
| 28 | |
|---|
| 29 | - PostGIS: Added better support for alternative schemas (#500) |
|---|
| 30 | |
|---|
| 31 | - AGG Renderer - Enforced default gamma function on all symbolizers to ensure proper antialiasing |
|---|
| 32 | even when gamma is modified on the PolygonSymbolizer. (#512) |
|---|
| 33 | |
|---|
| 34 | - Added ability to read pre 0.8.0 stylesheets, but prints a warning for deprecated syntax (r1592, #501) |
|---|
| 35 | |
|---|
| 36 | - Rasterlite Plugin: Experimental support for Rasterlite, to practically use sqlite database with wavelet compressed rasters (#469) |
|---|
| 37 | |
|---|
| 38 | - PNG: fixed png256 for large images and some improvements to reduce color corruptions (#522) |
|---|
| 39 | |
|---|
| 40 | - Implement MarkersSymbolizer in Cairo render and improve the markers placementfinder. (#553) |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | Mapnik 0.7.0 Release |
|---|
| 44 | -------------------- |
|---|
| 45 | |
|---|
| 46 | (Packaged from r1574) |
|---|
| 47 | |
|---|
| 48 | - Core: Fixed linking to external libagg (r1297,r1299) |
|---|
| 49 | |
|---|
| 50 | - Core: Completed full support for PPC (Big endian) architectures (r1352 -> r1357) |
|---|
| 51 | |
|---|
| 52 | - Gdal Plugin: Added support for Gdal overviews, enabling fast loading of > 1GB rasters (#54) |
|---|
| 53 | |
|---|
| 54 | * Use the gdaladdo utility to add overviews to existing GDAL datasets |
|---|
| 55 | |
|---|
| 56 | - PostGIS: Added an optional 'geometry_table' parameter. The 'geometry_table' used by Mapnik to look up |
|---|
| 57 | metadata in the geometry_columns and calculate extents (when the 'geometry_field' and 'srid' parameters |
|---|
| 58 | are not supplied). If 'geometry_table' is not specified Mapnik will attempt to determine the name of the |
|---|
| 59 | table to query based on parsing the 'table' parameter, which may fail for complex queries with more than |
|---|
| 60 | one 'from' keyword. Using this parameter should allow for existing metadata and table indexes to be used |
|---|
| 61 | while opening the door to much more complicated subqueries being passed to the 'table' parameter without |
|---|
| 62 | failing (#260, #426). |
|---|
| 63 | |
|---|
| 64 | - PostGIS Plugin: Added optional 'geometry_field' and 'srid' parameters. If specified these will allow |
|---|
| 65 | Mapnik to skip several queries to try to determine these values dynamically, and can be helpful to avoid |
|---|
| 66 | possible query failures during metadata lookup with complex subqueries as discussed in #260 and #436, but |
|---|
| 67 | also solvable by specifying the 'geometry_table' parameter. (r1300,#376) |
|---|
| 68 | |
|---|
| 69 | - PostGIS: Added an optional 'extent_from_subquery' parameter that when true (while the 'extent' parameter is |
|---|
| 70 | not provided and 'estimate_extent' is false) will direct Mapnik to calculate the extent upon the exact table |
|---|
| 71 | or sql provided in the 'table' parameter. If a sub-select is used for the table parameter then this will, |
|---|
| 72 | in cases where the subquery limits results, provide a faster and more accurate layer extent. It will have |
|---|
| 73 | no effect if the 'table' parameter is simply an existing table. This parameter is false by default. (#456) |
|---|
| 74 | |
|---|
| 75 | - PostGIS Plugin: Added 'bbox' token substitution ability in sql query string. This opens the door for various |
|---|
| 76 | complex queries that may aggregate geometries to be kept fast by allowing proper placement of the bbox |
|---|
| 77 | query to be used by indexes. (#415) |
|---|
| 78 | |
|---|
| 79 | * Pass the bbox token inside a subquery like: !bbox! |
|---|
| 80 | |
|---|
| 81 | * e.g. (Select ST_Union(geom) as geom from table where ST_Intersects(geometry,!bbox!)) as map |
|---|
| 82 | |
|---|
| 83 | - PostGIS Plugin: Added 'scale_denominator' substitution ability in sql query string (#415/#465) |
|---|
| 84 | |
|---|
| 85 | * Pass the scale_denominator token inside a subquery like: !scale_denominator! |
|---|
| 86 | |
|---|
| 87 | * e.g. (Select * from table where field_value > !scale_denominator!) as map |
|---|
| 88 | |
|---|
| 89 | - PostGIS Plugin: Added support for quoted table names (r1454) (#393) |
|---|
| 90 | |
|---|
| 91 | - PostGIS: Add a 'persist_connection' option (default true), that when false will release |
|---|
| 92 | the idle psql connection after datasource goes out of scope (r1337) (#433,#434) |
|---|
| 93 | |
|---|
| 94 | - PostGIS: Added support for BigInt (int8) postgres type (384) |
|---|
| 95 | |
|---|
| 96 | - PostGIS Plugin: Throw and report errors if SQL execution fails (r1291) (#363, #242) |
|---|
| 97 | |
|---|
| 98 | - PostGIS Plugin: Fixed problem in conversion of long numbers to strings (r1302,1303) |
|---|
| 99 | |
|---|
| 100 | - PostGIS Plugin: Added missing support for BigInt(int8) postgres datatypes (r1250) (#384) |
|---|
| 101 | |
|---|
| 102 | - OGR Plugin: Added support for reading multipoint features (#458) |
|---|
| 103 | |
|---|
| 104 | - Shape Plugin: Fixed bug in file extension stripping (#413) |
|---|
| 105 | |
|---|
| 106 | - Shape Plugin: Fixed missing compiler flags that causes crashing on newer g++ versions (#436) |
|---|
| 107 | |
|---|
| 108 | - PNG: Fixed problem with garbled/striped png256 output along sharpe edges(#416,#445,#447,#202) |
|---|
| 109 | |
|---|
| 110 | - PNG: Added support for semitransparency in png256 output (#477,#202) |
|---|
| 111 | |
|---|
| 112 | - PolygonSymbolizer: Added 'gamma' attribute to allow for dilation of polygon edges - a solution |
|---|
| 113 | to gap artifacts or "ghost lines" between adjacent polygons and allows for slight sharpening of |
|---|
| 114 | the edges of non overlapping polygons. Accepts any values but 0-1 is the recommended range. |
|---|
| 115 | |
|---|
| 116 | - TextSymbolizer: Large set of new attributes: 'text_convert', 'line_spacing', 'character_spacing', |
|---|
| 117 | 'wrap_character', 'wrap_before', 'horizontal_alignment', 'justify_alignment', and 'opacity'. |
|---|
| 118 | |
|---|
| 119 | * More details at changesets: r1254 and r1341 |
|---|
| 120 | |
|---|
| 121 | - SheildSymbolizer: Added special new attributes: 'unlock_image', 'VERTEX' placement, 'no_text' and many |
|---|
| 122 | attributes previously only supported in the TextSymbolizer: 'allow_overlap', 'vertical_alignment', |
|---|
| 123 | 'horizontal_alignment', 'justify_alignment', 'wrap_width', 'wrap_character', 'wrap_before', 'text_convert', |
|---|
| 124 | 'line_spacing', 'character_spacing', and 'opacity'. |
|---|
| 125 | |
|---|
| 126 | * More details at changeset r1341 |
|---|
| 127 | |
|---|
| 128 | - XML: Added support for using CDATA with libxml2 parser (r1364) |
|---|
| 129 | |
|---|
| 130 | - XML: Fixed memory leak in libxml2 implementation (#473) |
|---|
| 131 | |
|---|
| 132 | - XML: Added function to serialize map to string, called 'mapnik.save_map_to_string()' (#396) |
|---|
| 133 | |
|---|
| 134 | - XML: Added parameter to <Map> called 'minimum_version' to allow for enforcing the minimum Mapnik version |
|---|
| 135 | needed for XML features used in the mapfiles. Uses Major.Minor.Point syntax, for example |
|---|
| 136 | <Map minimum_version="0.6.1"> would throw an error if the user is running Mapnik less than 0.6.1. |
|---|
| 137 | |
|---|
| 138 | - XML: Added support for relative paths when using entities and 'mapnik.load_map_from_string()' (#440) |
|---|
| 139 | |
|---|
| 140 | - XML: Made width and height optional for symbolizers using images (r1543) |
|---|
| 141 | |
|---|
| 142 | - XML: Ensured that default values for layers are not serialized in save_map() (r1366) |
|---|
| 143 | |
|---|
| 144 | - XML: Added missing serialization of PointSymbolizer 'opacity' and 'allow_overlap' attributes (r1358) |
|---|
| 145 | |
|---|
| 146 | - XML: Default text vertical_alignment now dependent on dy (#485, r1527) |
|---|
| 147 | |
|---|
| 148 | - Python: Exposed ability to write to Cairo formats using 'mapnik.render_to_file()' and without pycairo (#381) |
|---|
| 149 | |
|---|
| 150 | - Python: Fixed potential crash if pycairo support is enabled but python-cairo module is missing (#392) |
|---|
| 151 | |
|---|
| 152 | - Python: Added 'mapnik.mapnik_svn_revision()' function to svn revision of Mapnik was compiled at. |
|---|
| 153 | |
|---|
| 154 | - Python: Added 'mapnik.has_pycairo()' function to test for pycairo support (r1278) (#284) |
|---|
| 155 | |
|---|
| 156 | - Python: Added 'mapnik.register_plugins()' and 'mapnik.register_fonts()' functions (r1256) |
|---|
| 157 | |
|---|
| 158 | - Python: Pickling support for point_symbolizer (r1295) (#345) |
|---|
| 159 | |
|---|
| 160 | - Python: Ensured mapnik::config_errors now throw RuntimeError exception instead of UserWarning exception (#442) |
|---|
| 161 | |
|---|
| 162 | - Filters: Added support for '!=' as an alias to '<>' for not-equals filters (avoids <>) (r1326) (#427) |
|---|
| 163 | |
|---|
| 164 | - SCons: Improved boost auto-detection (r1255,r1279) |
|---|
| 165 | |
|---|
| 166 | - SCons: Fixed support for JOBS=N and FAST=True to enable faster compiling (r1440) |
|---|
| 167 | |
|---|
| 168 | - SCons: Ensured that -h or --help will properly print help on custom Mapnik options before a user |
|---|
| 169 | has been able to properly run 'configure'. (r1514) |
|---|
| 170 | |
|---|
| 171 | - SCons: Added ability to link to custom icu library name using ICU_LIB_NAME (r1414) |
|---|
| 172 | |
|---|
| 173 | - SCons: Improved reliability of python linking on OSX (#380) |
|---|
| 174 | |
|---|
| 175 | - Fonts: Added unifont to auto-installed fonts, which is used by the OSM styles as a fallback font (r1328) |
|---|
| 176 | |
|---|
| 177 | |
|---|
| 178 | |
|---|
| 179 | Mapnik 0.6.1 Release |
|---|
| 180 | -------------------- |
|---|
| 181 | |
|---|
| 182 | (Packaged from r1247) |
|---|
| 183 | |
|---|
| 184 | - Plugins: expose list of registered plugins as a 'plugin_names()' method of DatasourceCache (r1180) |
|---|
| 185 | |
|---|
| 186 | - XML: Fixed serialization and parsing bugs related to handling of integers and Enums (#328,#353) |
|---|
| 187 | |
|---|
| 188 | - SCons: Added the ability to set the PKG_CONFIG_PATH env setting (#217) |
|---|
| 189 | |
|---|
| 190 | - SCons: Improved linking to only required libraries for libmapnik (#371) |
|---|
| 191 | |
|---|
| 192 | - Shape Plugin: Added compile time flag to allow disabling the use of memory mapped files (r1213) (#342) |
|---|
| 193 | |
|---|
| 194 | - Core: Improved support for PPC (Big endian) architectures (r1198 -> r1213) |
|---|
| 195 | |
|---|
| 196 | - Scons: Improved auto-detection of boost libs/headers (r1200) (#297) |
|---|
| 197 | |
|---|
| 198 | - Plugins: Exposed list of available/registered plugins (r1180) (#246) |
|---|
| 199 | |
|---|
| 200 | - SCons: Improve build support for SunCC (patches from River Tarnell) (r1168, r1169) |
|---|
| 201 | |
|---|
| 202 | - Python: Pickling support for text_symbolizer (r1164) (#345) |
|---|
| 203 | |
|---|
| 204 | - Python: Pickling support for proj_transform and view/coord_transform (r1163) (#345) |
|---|
| 205 | |
|---|
| 206 | - Python: Pickling support for parameters (r1162) (#345) |
|---|
| 207 | |
|---|
| 208 | - Python: Pickling support for stroke objects (r1161) (#345) |
|---|
| 209 | |
|---|
| 210 | - Python: Pickling support for line_symbolizer (r1160) (#345) |
|---|
| 211 | |
|---|
| 212 | - Python: Pickling support for projection objects (r1159) (#345) |
|---|
| 213 | |
|---|
| 214 | - Python: Pickling support for shield_symbolizer (r1158) (#345) |
|---|
| 215 | |
|---|
| 216 | - Python: Pickling support for polygon_symbolizer (r1157) (#345) |
|---|
| 217 | |
|---|
| 218 | - Python: Pickling support for query objects (r1156) (#345) |
|---|
| 219 | |
|---|
| 220 | - Python: Pickling support for pattern symbolizers (r1155) (#345) |
|---|
| 221 | |
|---|
| 222 | - Python: Pickling support for raster_symbolizer (r1154) (#345) |
|---|
| 223 | |
|---|
| 224 | - Python: Added 'mapnik.has_cairo()' function to test for cairo support (r1152) (#284) |
|---|
| 225 | |
|---|
| 226 | - Python: Exposed dash_array get method (r1151) (#317) |
|---|
| 227 | |
|---|
| 228 | - Python: Pickling support for Coord objects (#345) |
|---|
| 229 | |
|---|
| 230 | - GDAL Plugin: Added an experimental option to open files in 'shared mode' (r1143) |
|---|
| 231 | |
|---|
| 232 | - Python: Exposed RasterSymbolizer options in Python (r1139) |
|---|
| 233 | |
|---|
| 234 | - Plugins: Fixed support for non-file based sources in GDAL and OGR plugins (#336,#337) |
|---|
| 235 | |
|---|
| 236 | - Plugins: Formal inclusion of new plugin for Kismet server (r1127) (#293) |
|---|
| 237 | |
|---|
| 238 | - Python: Made access to features and featuresets more Pythonic (r1121) (#171,#280,#283) |
|---|
| 239 | |
|---|
| 240 | - XML: Ensured relative paths in XML are interpreted relative to XML file location (r1124) (#326) |
|---|
| 241 | |
|---|
| 242 | - XML: Added ability to serialize all default symbolizer values by passing third argument to save_map(m,'file.xml',True)(r1117) (#327) |
|---|
| 243 | |
|---|
| 244 | - Core: Added support for alpha transparency when writing to png256 (patch from Marcin Rudowski) (#202) |
|---|
| 245 | |
|---|
| 246 | - SCons: Ensured ABI compatibility information is embedded in libmapnik.dylib on Mac OS X (#322) |
|---|
| 247 | |
|---|
| 248 | - SCons: Ensured that the full 'install_name' path would be added to libmapnik.dylib on Mac OS X (#374) |
|---|
| 249 | |
|---|
| 250 | - Tests: Added testing framework in Python using nose (r1101-r1105) |
|---|
| 251 | |
|---|
| 252 | - Raster Plugin: Added a tile/bbox-based read policy for large (rasters width * height > 1024*1024 will be loaded in chunks) (r1089) |
|---|
| 253 | |
|---|
| 254 | - OGCServer: Made lxml dependency optional (r1085) (#303) |
|---|
| 255 | |
|---|
| 256 | - Rasters: Handle rounding to allow better alignment of raster layers (r1079) (#295) |
|---|
| 257 | |
|---|
| 258 | - AGG Renderer: Added option to control output JPEG quality (r1078) (#198) |
|---|
| 259 | |
|---|
| 260 | - Plugins: Fixed segfault in OGR Plugin with empty geometries (r1074) (#292) |
|---|
| 261 | |
|---|
| 262 | |
|---|
| 263 | |
|---|
| 264 | Mapnik 0.6.0 Release |
|---|
| 265 | -------------------- |
|---|
| 266 | |
|---|
| 267 | (Packaged from r1066) |
|---|
| 268 | |
|---|
| 269 | - Python: Added support for aspect_fix_mode (r1013) |
|---|
| 270 | |
|---|
| 271 | - OGCServer Fixed axis-ordering for WMS 1.3.0 request (r1051) (#241) |
|---|
| 272 | |
|---|
| 273 | - Plugins: Added option to all plugins to support using a 'base' path argument (r1042) |
|---|
| 274 | |
|---|
| 275 | - Symbolizers: RasterSymbolizer now support composing modes for hillshading (r1027) |
|---|
| 276 | |
|---|
| 277 | - SCons: Added options to build the rundemo and pgsql2sqlite tools (r989) |
|---|
| 278 | |
|---|
| 279 | - OGCServer: Added content-length output (r986) |
|---|
| 280 | |
|---|
| 281 | - SCons: Replaced LIBS/INCLUDES options for postgres and gdal with pg_config and gdal-config (r977) |
|---|
| 282 | |
|---|
| 283 | - SCons: Created an optional configure stage (r973) |
|---|
| 284 | |
|---|
| 285 | - Python: Added further pickling/copy support to Map, Layers, Datasources, Styles,and Rules (r907,r913,r921) |
|---|
| 286 | |
|---|
| 287 | - OGCServer: Added support for load_map(), allowing reading of XML styles and layers (r901) |
|---|
| 288 | |
|---|
| 289 | - OGCServer: Enabled friendly html output when in debug mode (debug=1 in ogcserver.conf) (r899) |
|---|
| 290 | |
|---|
| 291 | - Plugins: Added Sqlite driver for reading sqlite databases (r881) |
|---|
| 292 | |
|---|
| 293 | - Python: Exposed a number of properties for the Text Symbolizer (r869) |
|---|
| 294 | |
|---|
| 295 | - Plugins: PostGIS plugin now accepts multi-line queries (r862) |
|---|
| 296 | |
|---|
| 297 | - Filter parsing: Allow numbers in the filter field name. |
|---|
| 298 | This allows for shapefiles with columns like '1970'. |
|---|
| 299 | |
|---|
| 300 | - Plugins: Added OGR driver for reading all OGR supported formats (kunitoki) (r836) (#170) |
|---|
| 301 | |
|---|
| 302 | - XML: Added serialization of Fontsets (r807) |
|---|
| 303 | |
|---|
| 304 | - XML: Added support for reading xml from a string (r806) |
|---|
| 305 | |
|---|
| 306 | - C++: renamed mapnik::Color to mapnik::color (r796) |
|---|
| 307 | |
|---|
| 308 | - Python: Made available the scale_denominator property from the map in c++ and python (r794) |
|---|
| 309 | |
|---|
| 310 | - Python: Added ability to resize map and clear all layers and styles from python (r793) |
|---|
| 311 | |
|---|
| 312 | - Python: Exposed Proj to/from transformation for projected coordinate systems (r792,r822) (#117) |
|---|
| 313 | |
|---|
| 314 | - Memory Datasource: Added support for dynamically adding Points to map using Point Datasource (r790) |
|---|
| 315 | |
|---|
| 316 | - XML: Added xml serialization for abstract, title, minzoom, maxzoom, and queryable attributes (r787) |
|---|
| 317 | |
|---|
| 318 | - Core: Transformation is now skipped if srs values match exactly (r777) |
|---|
| 319 | |
|---|
| 320 | - Symbolizers: 'min_distance' now honored for POINT placement using Text Symbolizer (r771) |
|---|
| 321 | |
|---|
| 322 | - Plugins: PostGIS plugin now accepts a geometry_field,record_limit, cursor_size options (r769,r872) |
|---|
| 323 | |
|---|
| 324 | - Python: Added ability to transform as a method on Coord and Envelope objects (r764) |
|---|
| 325 | |
|---|
| 326 | - Python: Added docstrings to the Layer object (r763) |
|---|
| 327 | |
|---|
| 328 | - Plugins: Loosened the type checking in Shapefile Plugin dbf reader (r762) |
|---|
| 329 | |
|---|
| 330 | - Fonts: Added support for Right-to-left Hebrew text (r749) |
|---|
| 331 | |
|---|
| 332 | - Core: Added a Map buffer parameter - helps to avoid cut labels at tile edges (r744) |
|---|
| 333 | |
|---|
| 334 | - Symbolizers: Added opacity support to Point Symbolizer (r743) |
|---|
| 335 | |
|---|
| 336 | - Symbolizers: Added support of using Points with Shield Symbolizer (r741) |
|---|
| 337 | |
|---|
| 338 | - Plugins: PostGIS plugin now accepts alternate schemas (r773) |
|---|
| 339 | |
|---|
| 340 | - Fonts: Added support for fallback fonts (r704) |
|---|
| 341 | |
|---|
| 342 | - Cairo: Cairo support exposed in Python (r666) |
|---|
| 343 | |
|---|
| 344 | - Plugins: Added OSM plugin for reading directly from OSM data (r663) |
|---|
| 345 | |
|---|
| 346 | - Filters: Added support for boolean expressions (r660) |
|---|
| 347 | |
|---|
| 348 | - Python: Added ability to open Image32 files (r652) |
|---|
| 349 | |
|---|
| 350 | - Cairo: Cairo rendering support added (r656) |
|---|
| 351 | |
|---|
| 352 | - Core: Added unicode support based on ICU (r650) |
|---|
| 353 | |
|---|
| 354 | - Core: Added support for single and multi threaded variants of Mapnik (r632,r634) |
|---|
| 355 | |
|---|
| 356 | - Plugins: Use memory mapped files for reading shape file (r628) |
|---|
| 357 | |
|---|
| 358 | - Core: Use streams to write images (i/o refactor) (r628) (#15) |
|---|