# $Id: CHANGELOG 776 2008-12-7 01:30:27Z dane $ ---------------- Mapnik Changelog ---------------- A simple log of core changes affecting Mapnik usage. Developers: Please commit along with changes. For a complete change history, see the SVN log. Mapnik 0.7.0 Release -------------------- - Gdal Plugin: Add support for Gdal overviews, enabling fast loading of > 1GB rasters (#54) - PostGIS: Added an optional 'geometry_table' parameter. This is used by Mapnik to look up metadata in the geometry_columns and calculate extents (when the 'geometry_field' and 'srid' parameters are not supplied). If 'geometry_table' is not specified Mapnik will attempt to determine the name of the table to query based on parsing the 'table' parameter, which may fail for complex queries with more than one 'from' keyword. Using this parameter should allow for existing metadata and table indexes to be used while opening the door to much more complicated subqueries being passed within the 'table' parameter without failing (#260, #426). - PostGIS Plugin: Added optional 'geometry_field' and 'srid' parameters. If specified these will allow Mapnik to skip several queries to try to determine these values dynamically, and can be helpful to avoid possible query failures during metadata lookup with complex subqueries as discussed in #260 and #436, but also solvable by specifying the 'geometry_table' parameter. - PostGIS: Added an optional 'extent_from_subquery' parameter that when true (and the 'extent' parameter is not provided and 'estimate_extent' is false) will direct Mapnik to calculate the extent upon the exact table or sql provided in the 'table' parameter. If a sub-select is used for the table parameter then this will, in cases where the subquery limits results, provide a faster and more accurate layer extent. It will have no effect if the 'table' parameter is simply an existing table. This parameter is false by default. - PostGIS Plugin: Added 'bbox' substitution ability in sql query string. This opens the door for various complex queries that may aggregate geometries to be kept fast by allowing proper placement of the bbox query to be used by indexes. (r1292) (#415) - PostGIS Plugin: Added 'scale_denominator' substitution ability in sql query string (#415/#465) - PostGIS Plugin: Added support for quoted table names to allow for tables with characters that postgres requires quoting for like dashes (r1454) (#393) - PostGIS: Add a 'persist_connection' option (default true), that when false will release the idle psql connection after datasource goes out of scope (r1337) (#433,#434) - PostGIS: Added support for BigInt (int8) postgres type (384) - PostGIS Plugin: Throw and report errors if SQL execution fails (r1291) (#363, #242) - PostGIS Plugin: Added missing support for BigInt(int8) postgres datatypes (r1250) (#384) - XML: Added support for using CDATA with libxml2 parser (r1364) - XML: Added missing serialization of PointSymbolizer 'opacity' and 'allow_overlap' attributes (r1358) - PointDatasource: Fixed problem with missing geometries (#402) - Filters: Add support for '!=' as an alias to '<>' for not-equals filters (avoids <>) (r1326) (#427) - Python: Added 'mapnik.has_pycairo()' function to test for pycairo support (r1278) (#284) Mapnik 0.6.1 Release -------------------- (Packaged from r1247) - XML: Fixed serialization and parsing bugs related to handling of integers and Enums (#328,#353) - SCons: Added the ability to set the PKG_CONFIG_PATH env setting (#217) - SCons: Improved linking to only required libraries for libmapnik (#371) - Shape Plugin: Added compile time flag to allow disabling the use of memory mapped files (r1213) (#342) - Core: Improved support for PPC (Big endian) architectures (r1198 -> r1213) - Scons: Improved auto-detection of boost libs/headers (r1200) (#297) - Plugins: Exposed list of available/registered plugins (r1180) (#246) - SCons: Improve build support for SunCC (patches from River Tarnell) (r1168, r1169) - Python: Pickling support for text_symbolizer (r1164) (#345) - Python: Pickling support for proj_transform and view/coord_transform (r1163) (#345) - Python: Pickling support for parameters (r1162) (#345) - Python: Pickling support for stroke objects (r1161) (#345) - Python: Pickling support for line_symbolizer (r1160) (#345) - Python: Pickling support for projection objects (r1159) (#345) - Python: Pickling support for shield_symbolizer (r1158) (#345) - Python: Pickling support for polygon_symbolizer (r1157) (#345) - Python: Pickling support for query objects (r1156) (#345) - Python: Pickling support for pattern symbolizers (r1155) (#345) - Python: Pickling support for raster_symbolizer (r1154) (#345) - Python: Added 'mapnik.has_cairo()' function to test for cairo support (r1152) (#284) - Python: Exposed dash_array get method (r1151) (#317) - Python: Pickling support for Coord objects (#345) - GDAL Plugin: Added an experimental option to open files in 'shared mode' (r1143) - Python: Exposed RasterSymbolizer options in Python (r1139) - Plugins: Fixed support for non-file based sources in GDAL and OGR plugins (#336,#337) - Plugins: Formal inclusion of new plugin for Kismet server (r1127) (#293) - Python: Made access to features and featuresets more Pythonic (r1121) (#171,#280,#283) - XML: Ensured relative paths in XML are interpreted relative to XML file location (r1124) (#326) - XML: Added ability to serialize all default symbolizer values by passing third argument to save_map(m,'file.xml',True)(r1117) (#327) - Core: Added support for alpha transparency when writing to png256 (patch from Marcin Rudowski) (#202) - SCons: Ensured ABI compatibility information is embedded in libmapnik.dylib on Mac OS X (#322) - SCons: Ensured that the full 'install_name' path would be added to libmapnik.dylib on Mac OS X (#374) - Tests: Added testing framework in Python using nose (r1101-r1105) - Raster Plugin: Added a tile/bbox-based read policy for large (rasters width * height > 1024*1024 will be loaded in chunks) (r1089) - OGCServer: Made lxml dependency optional (r1085) (#303) - Rasters: Handle rounding to allow better alignment of raster layers (r1079) (#295) - AGG Renderer: Added option to control output JPEG quality (r1078) (#198) - Plugins: Fixed segfault in OGR Plugin with empty geometries (r1074) (#292) Mapnik 0.6.0 Release -------------------- (Packaged from r1066) - Python: Added support for aspect_fix_mode (r1013) - OGCServer Fixed axis-ordering for WMS 1.3.0 request (r1051) (#241) - Plugins: Added option to all plugins to support using a 'base' path argument (r1042) - Symbolizers: RasterSymbolizer now support composing modes for hillshading (r1027) - SCons: Added options to build the rundemo and pgsql2sqlite tools (r989) - OGCServer: Added content-length output (r986) - SCons: Replaced LIBS/INCLUDES options for postgres and gdal with pg_config and gdal-config (r977) - SCons: Created an optional configure stage (r973) - Python: Added further pickling/copy support to Map, Layers, Datasources, Styles,and Rules (r907,r913,r921) - OGCServer: Added support for load_map(), allowing reading of XML styles and layers (r901) - OGCServer: Enabled friendly html output when in debug mode (debug=1 in ogcserver.conf) (r899) - Plugins: Added Sqlite driver for reading sqlite databases (r881) - Python: Exposed a number of properties for the Text Symbolizer (r869) - Plugins: PostGIS plugin now accepts multi-line queries (r862) - Filter parsing: Allow numbers in the filter field name. This allows for shapefiles with columns like '1970'. - Plugins: Added OGR driver for reading all OGR supported formats (kunitoki) (r836) (#170) - XML: Added serialization of Fontsets (r807) - XML: Added support for reading xml from a string (r806) - C++: renamed mapnik::Color to mapnik::color (r796) - Python: Made available the scale_denominator property from the map in c++ and python (r794) - Python: Added ability to resize map and clear all layers and styles from python (r793) - Python: Exposed Proj to/from transformation for projected coordinate systems (r792,r822) (#117) - Memory Datasource: Added support for dynamically adding Points to map using Point Datasource (r790) - XML: Added xml serialization for abstract, title, minzoom, maxzoom, and queryable attributes (r787) - Core: Transformation is now skipped if srs values match exactly (r777) - Symbolizers: 'min_distance' now honored for POINT placement using Text Symbolizer (r771) - Plugins: PostGIS plugin now accepts a geometry_field,record_limit, cursor_size options (r769,r872) - Python: Added ability to transform as a method on Coord and Envelope objects (r764) - Python: Added docstrings to the Layer object (r763) - Plugins: Loosened the type checking in Shapefile Plugin dbf reader (r762) - Fonts: Added support for Right-to-left Hebrew text (r749) - Core: Added a Map buffer parameter - helps to avoid cut labels at tile edges (r744) - Symbolizers: Added opacity support to Point Symbolizer (r743) - Symbolizers: Added support of using Points with Shield Symbolizer (r741) - Plugins: PostGIS plugin now accepts alternate schemas (r773) - Fonts: Added support for fallback fonts (r704) - Cairo: Cairo support exposed in Python (r666) - Plugins: Added OSM plugin for reading directly from OSM data (r663) - Filters: Added support for boolean expressions (r660) - Python: Added ability to open Image32 files (r652) - Cairo: Cairo rendering support added (r656) - Core: Added unicode support based on ICU (r650) - Core: Added support for single and multi threaded variants of Mapnik (r632,r634) - Plugins: Use memory mapped files for reading shape file (r628) - Core: Use streams to write images (i/o refactor) (r628) (#15)