MapServer Revision History ========================== This is a human-readable revision history which will attempt to document required changes for users to migrate from one version of MapServer to the next. Developers are strongly encouraged to document their changes and their impacts on the users here. (Please add the most recent changes to the top of the list.) For a complete change history, please see the CVS log comments. A copy of the CVS logs is updated daily at the following URL: http://maptools.org/dl/mapserver_Changelog.txt Version 4.2.3 (2004-08-30) -------------------------- - Fixed problem with WMS GetFeatureInfo when data was reprojected. Was a problem with msProjectRect and zero-size search rectangles (bug 794) - Fixed MIME type of GetStyles response (bug 677) - Ported $layer->getExtent() from SWIG to PHP MapScript (bug 826) - In the case no RULE parameter has been specified in the request return the legend with all classes for the specified LAYER. Changes has been made in mapwms.c (bug 653) Version 4.2.2 (2004-07-28) -------------------------- - mapscript setup.py now builds a higher performance module for Python versions 2.2+ while maintaining support for Python 2.1 and older. - Fix a buffer overflow when building post request for WFS layers with long wfs_filter (Bug 775). - Fixed problem with [layers] replacement in HTML templates (bug 738). - A few fixes to allow php_mapscript to work with both PHP4 and PHP5. PHP5 support should still be considered experimental. (bug 718) - Backported fix for bug 767: SDE layers with shared connections were stomping on each other when they were freeing resources and this caused truncated WMS GetCapabilities (bug 779) - Pass FEATURE_COUNT instead of FEATURECOUNT in WMS GetFeatureInfo (bug 790) Version 4.2.1 (2004-07-12) -------------------------- - Disable drawERD() (ERDAS formats) when GDAL is available (bug 691) - Fixed layer->drawQuery() for PHP and SWIG MapScript (bug 695) - Python mapscript: fixed win32 and non-standard include dirs (bug 680). - Mladen Turk's map copying macros in mapcopy.h clean up map cloning and allow for copying of fontset and symbolset. Added cloning tests in python/tests/testCloneMap.py and refactored testing suite (bugs 640 & 701). - Postgis: wrapped in name space changes from HEAD (changed functions so they were declared static), and modified item querying so that it closed the correct cursor. - Fixed problem with tiled raster layers if there is no tile in the current view (bug 729). - Fixed problem with maxy in PHP MapScript's map->zoomscale() (bug 75) - Fixed $map->processTemplate() which was always returning NULL. Bug introduced in version 4.0 in all flavours of MapScript (bug 410) Version 4.2.0 (2004-05-25) -------------------------- - Postgis: added "WHERE false" to query that looks up the schema for item queries. This should greatly improve performance for complex queries. - Mapscript: fixed the shape copy test in mapscript tests. - Mapscript: replaced bad PNG file in tests with one that reads on win32. - mapresample.c: Ensure background value is properly initialized in case of rgb or rgba resampled rasters. Version 4.2-beta3 (2004-05-14) ------------------------------ - Fixed another write past end of buffer in INIMAGE WMS errors (bug 644) - Removed "xbasewohoo" debug output when using JOINs and fixed a few error messages related to MySQL joins (bug 652) - No more Python-stopping but otherwise benign errors raised from msDrawWMSLayer() (bug 650). - Finished prototyping all MapServer functions used by SWIG-Mapscript and added 'void' to prototypes of no-arg functions, eliminating all but two SWIG-Mapscript build warnings (bug 658). - Fixed mapwcs.c so that gdal.h and cpl_error.h are not included if USE_WCS_SVR is not enabled ... which is never is in 4.2. - msBuildPath() no longer used with temporary filenames when saving images via GDAL. - Bug 493: fix the raster cracking fix. The last fix introduced a serious heap corruption / errant pointer problem in some render cases. - Resolved issue with pens and dynamically drawing points (bug 663). - Removed unused metadata gml_uri in WFS code (Bug 527) Version 4.2-beta2 (2004-05-03) ------------------------------ - Map cloning fixed. However, users must now set the cloned map's fontset and symbolset explicitly (see bug 557). A new testcopy program has been added as a target for make. - Fixed problem with PHP's pasteImage() method when angle=0 - Fixed build problem in mapresample.c when compiling without GDAL. - Fixed possible crash when producing WMS errors INIMAGE (bug 644) - Fixed automated generation of onlineresource in OWS GetCapabilities when the xxx_onlineresource metadata is not specified: the map= parameter used to be omitted and is now included in the default onlineresource if it was explicitly set in QUERY_STRING (bug 643) - Fixed an issue with annotation label overlap. There was an issue with the way msRectToPolygon was computing it's bounding box. (bug 618) - Fixed "raster cracking" problem (bug 493) Version 4.2-beta1 (2004-04-17) ------------------------------ - Added support for WMS 1.1.1 in the WMS interface. - Added support for WMS-SLD in client and server mode. - Added support for attribute filters in the WFS interface. - WMS Interface: several fixes to address issues found in running tests against the OGC testsuite. One of the side-effects is that incomplete GetMap requests that used to work in previous versions will produce errors now (see bug 622). - Modified configure scripts to be able to configure/build PHP MapScript using an installed PHP instead of requiring the full source tree. - Added ability to combine multiple WMS connections to the same server into a single request when the layers are adjacent and compatible. (bug 116) - Support POSTed requests without Content-Length set. - Added support for proper classification of non-8bit rasters. - Added support for BYTE rawmode output type. - Added support for multiple bands of output in rawmode. - MySQL joins available - Fixed problems with detection of OGRRegisterAll() with GDAL 1.1.9 in configure due to GDAL's library name change. Fixed a few other minor issues with GDAL/OGR in configure. - Modified configure to disable native TIFF/PNG/JPEG/GIF support by default if GDAL is enabled. You can still enable them explicitly if you like. - Replace wms_style_%s_legendurl, wms_logourl, wms_descriptionurl, wms_dataurl and wms_metadataurl metadata by four new metadata by metadata replaced. The new metadata are called legendurl_width, legendurl_height, legendurl_format, legendurl_href, logourl_width, etc... Old dependancy to the metadata with four value in it , space separated, are not kept. - Implement DataURL, MetadataURL and DescriptionURL metadata in mapcontext.c (bug 523) - PHP MapScript's pasteImage() now takes a hex color value (e.g. 0xrrggbb) for the transparent color instead of a color index. (bug 463) - OGR data sources with relative paths are now checked relative to SHAPEPATH first, and if not found then we try again relative to the mapfile location. (bug 295) - There is a new mapObj parameter called MAXSIZE to control maximum image size to serve via the CGI and WMS interfaces. The default is 2048 as before but it can be changed in the map file now. (bug 435) - Added simple dataset for unit and regression tests (bug 453) - PostGIS: added postresql_NOTICE_HANDLER() sending output via msDebug() and only when layer->debug is set (bug 418) - Added Apache version detection in configure and added non-blocking flag on stderr in msDebug() to work around Apache 2.x bug (bug 458) - MapScript rectObj: added optional bounding value args to constructor and extended rectObj class with a toPolygon method (bug 508). - MapScript pointObj: added optional x/y args to constructor (bug 508). - MapScript colorObj: added optional RGB color value args to colorObj constructor, and extended colorObj class with setRGB, setHex, and toHex methods. The *Hex methods use hex color strings like '#ffffff' rather than '0xffffff' for compatibility with HTML (bug 509). - MapScript outputFormatObj: extended with a getOption method (bug 510). - MapScript imageObj: added optional mapObj argument to the save method resolving bug 549 without breaking current API. Also added optional driver and filename arguments to constructor which allows imageObj instances to be created with a specified driver or from files on disk (bug 530). Added new code to Python MapScript which extends the filename option to Python file-like objects (bug 550). This means StringIO and urllib's network objects! - MapScript classObj and styleObj: added a new styleObj shadow class and extended classObj with getStyle, insertStyle, and removeStyle methods. MapScript now supports multiple styles for dynamically created classes (bug 548). - MapScript layerObj: added getExtent, getNumFeatures extension methods, allowing getShape to access inline features (bug 562). - Added fixes for AMD64/Linux in configure (bug 565) - Removed OGR_STATIC stuff in configure script that used to allow us to build with OGR statically by pointing to the OGR source tree. That means you can only build with OGR when *installed* as part of GDAL, but that's what everyone is doing these days anyway. - Mapscript outputFormatObj: extended constructor to allow format names, and mapObj methods to append and remove output formats from the outputformatlist (bug 511). - New SWIG mapscript development documentation in the spirit of the PHP-Mapscript readme file, but using reST (bug 576). - Paving way for future changes to SWIG mapscript API with new features enabled by NEXT_GENERATION_API symbol (bug 586). - Added ability to set string member variables to NULL in PHP MapScript (bug 591) - New key iterators for map, layer, and class metadata hash tables (bug 434) and fontset fonts hash table (bug 439). - Fixed potential crash when using nquery with a querymap enabled and some layers have a template set at the layer level instead of inside classes (bug 569). - New CONFIG keyword in the MAP object in a .map file to be used to set external configuration parameters such as PROJ_LIB and control of some GDAL and OGR driver behaviours (bug 619) Version 4.0 (2003-08-01) ------------------------ - Fixed problem with truncated expressions (bugs 242 and 340) - Attempt at fixing GD vs libiconv dependency problems (bug 348) - Fixed problem with invalid BoundingBox tag in WMS capabilities (bug 34) - Fixed problems with SIZEUNITS not working properly (bug 373) - Fixed MacOSX configure problems for linking php_mapscript (bug 208) - Fixed problem with reference map marker symbol not showing up (bug 378) - Use in WMS 1.0.0 capabilities instead of (bug 129) - One-to-one and one-to-many joins now work for Xbase files and are available to query templates. Low level one-to-one Xbase joins are available via OGR. Version 4.0-beta2 (2003-07-11) ------------------------------ - Added prototype of FastCGI support in mapserv_fcgi.c (not built by default). - Report full error stack in the mapserv CGI and PHP MapScript (bug 346) - Old index (.qix) format is deprecated (bug 273) - Fixed problem with embedded legend and scalebar that would result in layers being added to the HTML legends (bug 171) - Changed joins (XBase only at this point) over to the open-prepare-next... next-close way of doing things. Compiles fine, but needs more testing. One-to-many support should work now but it needs to be hooked into the template code yet. Last thing before a candidate 4.0 release. - Added ability to generate images in MapScript processQueryTemplate (bug 341) - Added saving of output formats in msSaveMap() - Fixed problem in PHP MapScript with variables that were not dereferenced before their values were changed by the MapScript wrappers (bug 323) - Added support for Web Map Context 1.0.0 - Treat zero-length template values as NULL so that it's possible to set("template", "") from MapScript to make layer non-queryable (bug 338) - Ditched the shapepath argument to the shapefileObj constructor - CARTOLINE join style default changed to MS_CJC_NONE - Tweaked code in legend builder to handle polygon layers slightly different. Now if a polygon layer contains only outlines and no fills (i.e. a polyline) then it is drawn using the zigzag legend shape rather than the box. I'll add legend outlines back in shortly. - Restored legend key outlines (triggered by setting OUTLINECOLOR). If an outline is requested then line symbols are clipped to the outline, otherwise lines are allowed to bleed a pixel or two beyond those boundaries- for most cases this looks fine but for fat lines it is gonna look goofy regardless. In those cases use the KEYIMAGE. - Fixed a bug in the scanline writer so that x coordinates can be in any order when passed in to the function. (bug 336) - Updated loadExpressionString in mapfile.c to be a bit more tolerant of input. Now if a string does not match the logical or regex pattern it is automatically cast as a string expression. Removes the need for silly quotes. Version 4.0-beta1 (2003-06-06) ------------------------------ - Added imagemap outputformat, which makes possible use of client-side imagemaps in browsers - Added MySQL support for non-spatial OpenGIS Simple Features SQL stored data - msQueryByShape and msQueryByFeature honor layer tolerances. In effect you can to buffered queries now. At the momoment only polygon select features are supported, but there's nothing inherent in the underlying computations that says lines won't work as well. - Simple one-to-one joins are working again. Reworked the join code so that table connections are persistant within a join (across joins is a todo). Joins, like layers are wrapped with a connection neutral front end, that sets us up to do MySQL or whatever in addition to XBase. - Removed shapepath argument to all layer access functions (affects MapScript). It's still used but we leverage the layer pointer back to the parent mapObj so the API is cleaner. - Changed default presentation of feature attributes to escape a few problematic characters for HTML display (eg. > becomes >). Added [itemname_raw] substitution to allow access to unaltered data. - Added initial version of Jan Hartman's connection pooling code. - Replaced libwww with libcurl for WMS/WFS client HTTP requests. (libcurl 7.10 required, see http://curl.haxx.se/libcurl/c/) - Added CONNECTION to the list of mapfile parameters that can accept %variable% substitutions when processed by the cgi version. This is useful for passing in username and/or passwords to database data sources. - Added support for DATA and TEMPLATE (header/footer/etc...) filtering using an regex declared in the mapfile (DATAPATTERN and TEMPLATEPATTERN). Certain parameters in a mapfile cannot be changed via a URL without first being filtered. - Added support for enviroment variable MS_MAPFILE_PATTERN. This allows you to override the default regex in favor of one more restrictive (I would hope) of your own. - Disabled CGI SAVEMAP option. - Removed CGI TEMPLATE option since you can use the map_web_template syntax. Simplifies security maintenance by only having to deal with this option in a single place. - Added offset support (styleObj) for raster based output (GD for sure, not quite sure how OGR output is created although I believe is uses GD anyway). This allows for feature drop shadows and support for cool linear symbols like used to be supported in pre-3.4 versions. These offsets are not scalable at the moment. - Null shapes (attributes but no vertices) are skipped for shapefiles using the msLayerNextShape interface. Otherwise applications should check the shapeObj type member for MS_SHAPE_NULL. - Changed where label cache is allocated and cleared. Now it isn't allocated until drawing takes place. Any old cache is cleared before a new one is allocated. The cache is still intact following rendering for post-processing using MapScript. - Fixed screw up in pre-processing of logical expressions for item lists. Under certain circumstances that list could get corrupted and expressions would fail. - Added NOT operator to expression parser. - Added layer and map level DEBUG options to map file. - Major changes to support vector output (PDF, SWF, GML, ...): - imageObj is used by all rendering functions instead of gdImagePtr - New msSaveImage() prototype - Support for GD-2.0, including 24 bits output. Dropped support for GD 1.x - Support for output to any GDAL-supported format via the new OUTPUTFORMAT object. - New styleObj to replace the OVERLAY* parameter in classes. - PostGIS: Added Sean Gillies 's patch for "using unique ". Added "using SRID=#" to specify a spatial reference for an arbitrary sql query. - ... and nuerous fixes not listed here... Version 3.6.0-beta1 (2002-04-30) -------------------------------- - MapScript: qitem and qstring params added to layer->queryByAttribute(). Instead of being driven by the layer's FILTER/FILTERITEM, the query by attribute is now driven by the values passed via qitem,qstring, and the layer's FILTER/FILTERITEM are ignored. - Symbol and MapFile changes: ANTIALIAS and FILLED keywords now take a boolean (TRUE/FALSE) argument i.e. ANTIALIAS becomes ANTIALIAS TRUE and FILLED becomes FILLED TRUE - Reference Map: Added options to show a different marker when the reference box becomes too small. See the mapfile reference docs for more details on the new reference object parameters (MARKER, MARKERSIZE, MAXBOXSIZE, MINBOXSIZE) - Added MINSCALE/MAXSCALE at the CLASS level. - Support for tiled OGR datasets. - PHP 4.1.2 and 4.2.0 support for PHP MapScript. - Added LAYER TRANSPARENCY, value between 1-100 - Fixes to the SWIG interface for clean Java build. - New HTML legend templates for CGI and MapScript. See HTML-Legend-HOWTO. - WMS server now supports query results using HTML query templates instead of just plain/text. - Added support functions for thread safety (--with-thread). Still not 100% thread-safe. Version 3.5.0 (2002-12-18) -------------------------- - No Revision history before version 3.5 --------- $Id$