= GDAL/OGR 1.9.0 Release Notes = == In a nutshell... == * New GDAL drivers: ACE2, CTG, E00GRID, ECRGTOC, GRASSASCIIGrid, GTA, NGSGEOID, SNODAS, WebP, ZMap * New OGR drivers: ARCGEN, CouchDB, DWG, EDIGEO, FileGDB, Geomedia, GFT, IDRISI, MDB, SEGUKOOA, SEGY, SVG, XLS * Significantly improved drivers: NetCDF * Encoding support for shapefile/dbf (#882) * RFC 35: Delete, reorder and alter field definitions of OGR layers * RFC 37: Add mechanism to provide user data to CPLErrorHandler (#4295) * gdalsrsinfo: new supported utility to report SRS in various form (supercedes testepsg) == New installed files == * data/nitf_spec.xml and data/nitf_spec.xsd == Backward compatibility issues == * GTiff: ensure false easting/northing in geotiff geokeys are treated as being in geosys units (#3901) * GRIB: Fix grid vs cell-center convention (#2637) * OGR SQL: with DISTINCT, consider null values are such, and not as empty string (#4353) == GDAL/OGR 1.9.0 - General Changes == Build(Unix): * Add --with-rename-internal-libtiff-symbols and --with-rename-internal-libgeotiff-symbols flags in order to safely link against an external libtiff (3.X) and a GDAL built with internal libtiff (4.0) support (#4144) * Add --with-mdb --with-java,--with-jvm-lib, --with-jvm-lib-add-rpath options * Add --with-podofo, --with-podofo-lib, --with-podofo-extra-lib-for-test options * Add --with-armadillo * Update to libtool 2.4 * Fix linking against static libkml (#3909) * Fix Xerces detection by using LIBS instead of LDFLAGS (#4195) * Check for .dylib too, when configuring MrSID SDK paths (#3910) * Fix wrong include order in GNUmakefile of GPX and GeoRSS drivers (#3948) * cpl_strtod.cpp: Enable android support (#3952). * ensure swig-modules depends on lib-target so make -j works with swig bindings * Change how we check for GEOS >= 3.1 (#3990) * Define SDE64 on at least x86_64 platforms (#4051) * Make ./configure --with-rasdaman=yes work (#4349) * MinGW cross compilation: clear GEOS_CFLAGS and XERCES_CFLAGS if headers found in /usr/include, do not use Unix 64 bit IO * MinGW build: define __MSVCRT_VERSION__ to 0x0601 if not already set Build(Windows): * Move MSVC warning disabling to nmake.opt, add SOFTWARNFLAGS for external code * Use nmake.local (#3959) * cpl_config.h.vc: fix up so it also works with mingw (#3960) * Build testepsg utility by default when OGR is enabled (#2554) == GDAL 1.9.0 - Overview of Changes == Port: * /vsigzip/ : Avoid reading beyond file size in case of uncompressed/stored files in zip (#3908) * /vsicurl/ : Better support for escaped and UTF-8 characters * /vsicurl/ : speed-up with a per-thread Curl connection cache * /vsicurl/ : read https directory listing * /vsicurl/ : look for GDAL_DISABLE_READDIR_ON_OPEN configuration option in Open() and Stat() to avoid trying fetching the directory file list * /vsicurl/ : fix performance problem when parsing large directory listings (#4164) * /vsicurl/ : recognize listing of Apache 1.3 * /vsicurl/ : fix ReadDir() after reading a file on the same server * /vsicurl/ : fetch more info (size, date) when listing FTP or HTTP directories and save it in cache; use those info for ReadDir() and Stat() * /vsicurl/: accept 225 as a valid response code for FTP downloads (#4365) * /vsicurl/ : add CPL_VSIL_CURL_ALLOWED_EXTENSIONS configuration option that can be used to restrict files whose existence is going to be tested. * /vsitar/ : Recognize additionnal .tar files with slightly header differences * /vsizip/ : wrap the returned file handle in a BufferedReader * /vsizip/ : fix 1900 year offset for year returned by VSIStatL() * /vsizip and /vsitar: remove leading './' pattern at the beginning of filenames contained in the archive * /vsistdout_redirect/ : New virtual file system driver that has the same behaviour as /vsistdout/ (write-only FS) except it can redirect the output to any VSIVirtualFile instead of only stdout (useful for debugging purposes) * Implement VSI*L read caching - useful for crappy io environments like Amazon * VSI*L: Add Truncate() virtual method and implement it for unix, win32 and /vsimem file systems * VSI*L: Add ReadMultiRange() virtual method to read several ranges of data in single call; add an optimized implementation for /vsicurl/ * VSIFEofL(): make it more POSIX compliant. * Fine tune CPLCorrespondingPaths() for different basenames when paths involved. * VSIWin32FilesystemHandler::Open() : implement append mode. Needed by ISIS2 driver with attached label (#3944) * CPLString: add case insensitive find operator (ifind) * RFC23: Add the iconv() based implementation of the CPLRecode() function (#3950) * Preliminary support for wchar_t with iconv recode (#4135) * Avoid calling setlocale if we are already in the C locale, or GDAL_DISABLE_CPLLOCALEC is TRUE (#3979) * CPLMiniXML: emit warnings when encountering non-conformant XML that is however accepted by the parser * add CPLBase64Encode(); move cpl_base64.h contents to cpl_string.h * Use CRITICAL_SECTION instead of Mutex on win32 * CPLHTTPFetch(): Add a CLOSE_PERSISTENT option to close the persistant sessions * CPLHTTPFetch(): Add support for "NEGOTIATE" http auth mechanism * CPLHTTPFetch(): Add a CUSTOMREQUEST option * VSIBufferedReaderHandle: fix Eof() * Add CPLStringList class * Add CPLEmergencyError() - to call when services are too screwed up for normal error services to work (#4175) * CPLEscapeString(,,CPLES_URL) : don't escape dot character; fix escaping of characters whose code >= 128 Core: * Provide for ABI specific plugin subdirectories on all platforms * Force cleanup of datasets when destroying the dataset manager * Add a GDALDataset::CloseDependantDatasets() that can be used by GDALDriverManager::~GDALDriverManager() to safely close remaining opened datasets (#3954) * Add GDALRasterBand::ReportError() and GDALDataset::ReportError() to prepend dataset name (and band) before error message (#4242) * Fix performance problem when serializing huge color tables, metadata, CategoryNames and GCPs to VRT/PAM (#3961) * Be careful about Nan complex values getting histogram, avoid locale issues with statistics metadata * GDALRasterBand::IRasterIO() default implementation : don't try to use full-res band if I/O failed on the appropriate overview band (for WMS errors) * RasterIO: Return earlier when a write error occured while flushing dirty block * GDAL_DISABLE_READDIR_ON_OPEN can be set to EMPTY_DIR to avoid reading the dir, but it set an empty dir to avoid looking for auxiliary files * Use sibling file list to look for .aux.xml, .aux, .ovr, world files, tab files * Add GDALFindAssociatedFile() (#4008) * PAM: Make sure GCPs loaded from a .aux.xml override any existing ones from other sources, like an .aux file * PAM: Add cloning of CategoryNames * PAM : PamFindMatchingHistogram() - fix floating-point comparison * GMLJP2: Use http://www.opengis.net/gml as the schemaLocation * GMLJP2: Support for capturing and writing page resolution in a TIFF compatible way (#3847) * GDALJP2Box::SetType() : remove byte-swapping so that SetType()/GetType() correctly round-trips. Do appropriate changes in JP2KAK and ECW drivers. (#4239) * GDALReplicateWord(): fix off-by-one error initialization (#4090) Algorithms: * polygonize: Added GDALFPolygonize() as an alternative version of GDALPolygonize() using 32b float buffers instead of int32 ones. (#4005) * gdalwarp: take into account memory needed by DstDensity float mask (#4042) * rasterfill: create working file as a bigtiff if at all needed (#4088) * gdalrasterize: use double instead of float to avoid precision issues (#4292) Utilities: * gdalsrsinfo: new supported utility to report SRS in various form (supercedes testepsg) * gdalinfo: add '-nofl' option to only display the first file of the file list * gdalinfo: add '-sd num' option to report subdataset with the specified number. * gdalinfo: add '-proj4' option to gdalinfo, to report a PROJ.4 string for the CRS * gdal_translate: propagate INTERLEAVE metadata to intermediate VRT dataset * gdal_translate: force quiet mode when outputing to /vsistdout/ * gdalwarp: Disable CENTER_LONG rewrapping for cutline (#3932) * gdalwarp: add -refine_gcps option to discard outliers GCPs before warping (#4143) * gdalwarp: add warning if user specifies several of -order, -tps, -rpc or -geoloc options * gdalwarp: speed-up when using -tps with large number of GCPs (when GDAL built --with-armadillo) * gdalwarp: add support for optional use of libarmadillo to speed-up matrix inversion in -tps mode * gdalwarp: detect situations where the user will override the source file * gdallocationinfo: do not let one off-db pixel cause all the rest to be supressed (#4181) * gdal_rasterize: fix half pixel shift when rasterizing points; make gdal_rasterize utility increase the computed raster extent by a half-pixel for point layers (#3774) * gdal_rasterize: when source datasource has a single layer, use it implicitely if none of -l or -sql is specified * nearblack: add -color option (#4085) * nearblack: improve detection of collar * nearblack: remove useless restrictions on number of bands for -setmask and -setalpha options (#4124) * gcps2vec.py: Fix command line parsing; Add SRS definition to created vector layer; Use Point geometry when dumping pixel/line coordinates. * gdal_merge.py: add support for -separate with multiband inputs (#4059) * gdal_merge.py: add a -a_nodata option (#3981) * gdal_proximity.py: -co option existed, but was unused... * gdal_fillnodata.py: add -co option * Add gdal_ls.py and gdal_cp.py as Python samples * Add new sample utility, gdal_edit.py, to edit in place various information of an existing GDAL dataset (projection, geotransform, nodata, metadata) (#4220) * gdalcopyproj.py: make it copy GCPs too * Add warning if a target filename extension isn't consistant with the output driver * Add --pause for convenient debugging, document it and --locale Multi-driver topics: * Implement reading XMP metadata from GIF, JPEG, PNG, GTiff, PDF and the 5 JPEG2000 drivers. The XMP metadata is stored as raw XML content in the xml:XMP metadata domain (#4153) * Mark BT, DIPEx, ERS, FAST, GenBIN, GSC, GSBG, GSAG, GS7BG, JDEM, JP2ECW, PNM, RMF, TIL, WCS and WMS drivers as compatible with VSI virtual files * Port DOQ1, DOQ2, ELAS, Idrisi, L1B, NDF, NWT_GRD, NWT_GRC, USGSDEM to VSI virtual file API * PAM-enable BT and BLX drivers * Implement Identify() for AAIGrid, ACE2, DTED, NWT_GRD, NWT_GRC, WMS, WCS, JDEM and BSB drivers * Make GIF, JPEG and PNG drivers return a non NULL dataset when outputing to /vsistdout/ * HFA and GTiff: add explicit error message when trying to add external overviews when there are already internal overviews (#4044) * Initialize overview manager to support external overviews for AAIGRID, DIPX, ELAS, GXF, FIT, FITS, GMT, GRIB, GSAG, GSBG, GS7BG, ILWIS, L1B, LCP, Leveller, NWT_GRD, NWT_GRC, RIK, SDTS and SAGA AAIGrid: * Make opening from /vsicurl/ work even when the server returns an empty file list ACE2 driver: * New for GDAL/OGR 1.9.0 * Read ACE2 DEM AIG driver: * Support uncompressed integer files, new in ArcGIS 10 it seems (#4035) * Use color table from PAM if no native one (#4021) * Fallback to PAM mechanism for RAT (#4021) BSB driver: * Parse the GD keyword in BSB_KNP to recognize European 1950 datum (#4247) CEOS2 driver: * avoid potential crash reading past end of string. (#4065) CTG driver: * New for GDAL/OGR 1.9.0 * Read USGS LULC Composite Theme Grid files DIMAP driver: * Add support for DIMAP2 * Check underlying raster for SRS. There are cases where HORIZONTAL_CS_CODE is empty and the underlying raster is georeferenced E00GRID driver: * New for GDAL/OGR 1.9.0 * Read Arc/Info Export E00 GRID ECRGTOC driver: * New for GDAL/OGR 1.9.0 * Read TOC.xml file of ECRG products ECW driver: * Use a long refresh time for ecwp:// connections to ensure we get full resolution data, make configurable * Re-enable writing non8bit data in jpeg2000 * Add implementation of an Async reader (4.x SDK) * Improve to support all /vsi stuff (#2344) * Ensure ECW_ENCODE_ values are applied for direct Create as well as CreateCopy * force adfGeoTransform[5] sign to negative. (#393) * Mark GDAL_DCAP_VIRTUALIO=YES when the driver is configured in read-only mode * Ensure we fallback to native geotransform if no pam override * Try to read projection info embedded in ECW file before reading the worldfile (#4046) * Add support for updating geotransform and projection info of a ECW file (#4220) * Fix ECW_CACHE_MAXMEM that was without effect and ECW_AUTOGEN_J2I that set an unrelated ECW parameter (#4308) * Allow to open a ECW file with invalid EPSG code from SWIG bindings (#4187) EHdr driver: * Improve floating point detection (#3933) * Recognize MIN_VALUE and MAX_VALUE as found in ETOPO1 header * Try opening the .sch file for GTOPO30 or SRTM30 source file * Ignore bogus .stx file where min == nodata EIR driver: * Add support for DATA_TYPE keyword ENVI driver: * Add support for ESRI style coordinate system string (#3312) * Try to guess interleave mode from file extension, if interleave keyword is missing * Refuse to open unsupported types, but attempt to open everything else. ENVISAT driver: * Correct dfGCPLine values for stripline products (#3160, #3709) * Fix checking of tie points per column for MERIS GCPs (#4086) * Report metadata from the ASAR ADS and GADS in the RECORDS metadata domain (#4105) * Read MERIS metadata (#4105) * Read data from ERS products in ENVISAT format (#4105) * Improved MERIS Level 2 bands datection (#4141 and #4142) EPSILON driver: * Now require libepsilon 0.9.1 to build (now dual LGPL/GPL) (#4084) ERS driver: * Use case insensitive find so case does not matter (#3974) * Handle case of 1 m pixel resolution when CellInfo is missing (#4067) * Implement ERSRasterBand::SetNoDataValue() (#4207) * Add support for DATUM, PROJ and UNITS creation option; report the values read from the .ers file in the ERS metadata domain (#4229) GeoRaster driver: * Set nodata causes invalid XML metadata (#3893) * Fix SetStatistics() failure (#4072) * Fix defaut interleaving (#4071) * modelCoordinateLocation=CENTER default (#3266) * Cache block/level error in update (#4089) * Fix sequence.nextval not supported (Oracle 10g) (#4132) * change BLOCKING option to OPTIMALPADDING * fix 'cannot specify columns on insert create option' (#4206) * Fix ULTCoordinate Rows/Columns swapping (#3718) * Fix loading of small images, FlushCache issue (#4363) GIF driver: * Make CreateCopy() more friendly with outputing in /vsistdout/ GRIB driver: * Fix grid vs cell-center convention (#2637) * use /vsi for all jpeg2000 files now * Fix to allow GFS data to show up properly (#2550) * Added a ConfigOption in GRIB driver to not normalize units to metric when reading the data * Fixed grib1 & grib2 : pixel size precision introduces error for corner coordinates (#4287) GTA driver: * New for GDAL/OGR 1.9.0 * Read/write support for Generic Tagged Arrays GTiff driver: * Ensure false easting/northing in geotiff geokeys are treated as being in geosys units. Add GTIFF_LINEAR_UNITS=BROKEN config option to try and read old broken files, and logic to cover for older libgeotiffs when reading (#3901) * Add support for a special tag to keep track of properly written linear units (#3901) * Implement deferred directory chain scanning to accelerate simple opens * Make GTiff COPY_SRC_OVERVIEWS to deal with unusual source overview sizes (#3905) * Fix bug when using -co COPY_SRC_OVERVIEWS=YES on a multiband source with external overviews (#3938) * Add logic to fill out partial tiles on write in for jpeg images (#4096) * Updated to libtiff 4.0.0 final * Refresh with libgeotiff 1.4.0, to support for GeogTOWGS84GeoKey * Add support for Geocentric SRS * libtiff: Enable DEFER_STRILE_LOAD * Turn warning 'ASCII value for tag xx into more silent CPLDebug message * Overviews: Improve error reporting for >16bit images to JPEG compression * Use CPLAtof() for geotiff and epsg .csv file handling (#3886, #3979) * Lots of Imagine and ESRI PE string citation handling changes from 1.8-esri. Some citation related changes only compiled in if ESRI_SPECIFIC defined. * Give PAM information precidence over metadata from GeoTIFF itself. Avoid unnecessary (default) writes of scale/offset. Treat (0,1,0,0,0,-1) as a default geotransform as well as (0,1,0,0,0,1). * Migrate in some ESRI only logic for 1bit color tables, AdjustLinearUnits and default for 1bit data * Add a GTIFF_IGNORE_READ_ERRORS configuration option (#3994) * Lazy loading of RPC/RPB/IMD files (#3996) * Add mutex protection in GTiffOneTimeInit() to avoid occasionnal segfaults * Stop interpreting 4th band as alpha when not defined * Also list nSubType == FILETYPE_PAGE as subdatasets * CreateCopy(): copies category names from the source bands * Add capability of writing TIFFTAG_MINSAMPLEVALUE and TIFFTAG_MAXSAMPLEVALUE * Don't prevent from loading GTiff driver even if libtiff version mismatch detected (#4101) * Use GTIFF_ESRI_CITATION flag to disable writing special meaning ESRI citations * Optimize GTiffRGBABand implementation (#3476) * Add GTIFF_DIRECT_IO config. option that can be set to YES so that IRasterIO() reads directly bytes from the file using ReadMultiRange(). * Use VSI_TIFFOpen() in GTIFFBuildOverviews() to make it work on virtual file systems * Treat _UNASSALPHA as alpha GRASSASCIIGrid driver: * New for GDAL/OGR 1.9.0 * Read GRASS ASCII grids (similar to ArcInfo ASCII grids) GRIB driver: * Check for memory allocation failures HDF4 driver: * Use larger object name buffer * Handle SWopen failures HDF5 driver: * Fix HDF5/BAG handle/memory leaks (#3953) * Better error checking * Do not return NULL from getprojectionref() (#4076) * Identify datasets whose header starts with some XML content (#4196) * Fixed HDF5 variable length string attributes reading (#4228) HFA driver: * Add support for writing RATs (#999) * Add support for reading 2bit compressed .img files (#3956) * Update EPRJ_ list based on input from Erdas, round trip Krovak and Mercator Variant A (#3958) * Major push to move projections from 1.6-esri into trunk in HFA driver (#3958) * Reinitialize RRDNamesList and ExternalRasterDMS (#3897) * Ensure the whole entry is reinitialized when writing proparams and datum (#3969) * Ensure PEString cleared if we aren't writing it (#3969) * Get nodata from an overview if not present on main band. Set geotransform[1] and [5] to 1.0 if pixelSize.width/height are 0.0. Improve error checking if MakeData() fails. * atof() changed to CPLAtofM() to avoid locale issues. * Altered Edsc_BinFunction column "Value" to "BinValues" and changed type. * Equirectangular StdParallel1 changed to LatitudeOfOrigin. * Logic to preserve psMapInfo->proName as the PROJCS name for UTM/StatePlane. * Special state plane zone handling. * Special wisconsin handling for some LCC and TM SRSes. * 1-bit null blocks to default to 1 in ESRI_BUILDs * Add support for GDA94 (#4025) Idrisi driver: * Fix segfaults when fields are missing in .ref or .rdc files (#4100) * Fix problem with inverse flattening when reading a SRS of a sphere (#3757) INGR driver: * Set NBITS for 1 bit bands ISIS2/ISIS3 driver: * Various improvements to PDS related drivers (#3944) JaxaPalsar driver: * Fixed datatype of ALOS PALSAR products Level 1.5 (#4136) * Fixed detection of unsupported PALSAR Level 1.0 products (#2234) JPIPKAK driver: * Add try to in GetNextUpdatedRegion() to protect against kakadu exceptions (#3967) * Fixed a serious bug in the computation of fsiz and region. (#3967) KMLSUPEROVERLAY driver : * Remove spaces between coordinates in coordinate triplets as mandated by KML 2.2 spec, to restore compatibility with Google Earth 6.1.0.5001 (#4347) LAN driver: * Preliminary support for writing gis/lan files MEM driver: * Add support for remembered histograms and PIXELTYPE MG4Lidar driver: * Clamp nOverviewCount, some LiDAR files end up with -1 overviews MrSID driver: * Initialize overview manager to enable RFC 15 mask band support (#3968) * Mark GDAL_DCAP_VIRTUALIO=YES when the driver is configured in read-only mode * Handle LTI_COLORSPACE_RGBA NetCDF driver: * Set cylindrical equal area representation to the proper cf-1.x notation (#3425) * Fix precision issue in geotransform (#4200) and metadata * Add support for netcdf filetypes nc2(64-bit) and nc4 to netCDFDataset (#3890, #2379) * Add function Identify and IdentifyFileType() (#3890, #2379) * Temporarily disabling PAM for netcdf driver (#4244) * Make creation of geographic grid CF compliant (#2129) * Fixes for netcdf metadata export: duplication, Band metadata, int/float/double vs. char* and add_offset/scale_factor (#4211, #4204), double precision ( 4200) * Fix netcdf metadata import (float and double precision) (#4211) * Improve import of CF projection * Add netcdf history metadata (#4297) * CF-1.5 compatible export of projected grids (optional lon/lat export) * Fix LCC-1SP import and export (#3324) * Fix handling of UNITS import and export (#4402 and #3324) * Fix upside-down export and import of grids without projection and geotransform (#2129, #4284) * Support import of polar stereographic variant without standard parallel (#2893) * New driver options * Add simple progress indicator * Add support for netcdf-4, HDF4 and HDF5 (#4294 and #3166) * Add support for deflate compression * Add format support information and CreateOptionList to driver metadata * Add support for valid_range/valid_min/valid_max * Proper handling of singed/unsigned byte data * Add support for Create() function and significantly refactor code for export (#4221) * Improvements to CF projection support (see wiki:NetCDF_ProjectionTestingStatus) NGSGEOID driver: * New for GDAL/OGR 1.9.0 * Read NOAA NGS Geoid Height Grids NITF driver: * Add a generic way of decoding TREs from a XML description file located in data/nitf_spec.xml * Add a new metadata domain xml:TRE to report as XML content the decoded TREs * Add NITF_OPEN_UNDERLYING_DS configuration option that can be set to FALSE to avoid opening the underlying image with the J2K/JPEG drivers * Support JP2KAK driver for jpeg2000 output, use /vsisubfile/ in all cases * NITFCreate(): deal with cases where image_height = block_height > 8192 or image_width = block_width > 8192 (#3922) * Add IREPBAND and ISUBCAT creation option (#4343) * Make sure scanline access is used only on single block image (#3926) * Add a NITF_DISABLE_RPF_LOCATION_TABLE_SANITY_TESTS configuration option that can be set to TRUE to blindly trust the RPF location table (#3930) * Correctly assign hemisphere for a ICORDS='U' NITF file with accompagnying .nfw and .hdr files (#3931) * Make PAM available at band level for JPEG/JPEG2000 compressed datasets (#3985) * Read IMRFCA TRE for RPC info. Read CSEXRA TRE. * Read CSDIDA and PIAIMC TREs as metadata * Optional support for densifying GCPs and applying RPCs to them * Add GetFileList() that captures associated files with some NITF products. * Added ESRI only ExtractEsriMD() function. Add raw header capture in NITF_METADATA domain in base64 encoded form. * Fetch NITF_DESDATA in segment data; decode specialized fields of XML_DATA_CONTENT and CSATTA DES * Truncate TRE name to 6 character (#4324) * Take into account the presence of comments when patching COMRAT for JPEG/JPEG2000 NITF (#4371) NWT_GRD driver: * Fix interpolation of color when the maximum z value is below a threshold of the color scheme (#4395) OPENJPEG driver: * Optimize decoding of big images made of a single block * Fallback to PAM to get projection and geotransform PCIDSK driver: * Refresh PCIDSK SDK from upstream * Fix support for band description setting, add BANDDESCn creation option * Implement GetCategoryNames(), and color table from metadata for PCIDSK * Fix exception on files with bitmaps as bands in GetFileList() * Avoid closing and reopening file so we don't fracture the SysBMData with a metadata write * In read-only, if .pix is raster (resp. vector) only, then make sure that OGR (resp. GDAL) cannot open it PDF driver: * Support linking against podofo library (LGPL) instead of poppler --> however pdftoppm binary from poppler distribution is needed for rasterization PDS driver: * Add support for MISSING and MISSING_CONSTANT keywords for nodata values (#3939) * Add support for uncompressed images in the UNCOMPRESSED_FILE subdomain (#3943) * Add support for PDS_Sample/LineProjectOffset_Shift/Mult (#3940) * Preliminary qube write support (#3944) * Fix band offset computation in BSQ (#4368) PNG driver: * Add compatibility with libpng >= 1.5.0 (#3914) * Upgrade internal libpng to 1.2.46 PNM driver: * Make it compatible with VSI virtual files PostgisRaster driver: * Speed of PostGIS Raster driver improved. (#3228, #3233) Rasterlite driver: * Robustness against buggy databases * Enable QUALITY creation option for WEBP tiles RS2 driver: * Setup to properly support subdataset oriented metadata and overviews (#4006) * Allow opening subdatasets by passing in the folder (#4387) SAGA driver: * Fix reading & writing .sdat files bigger than 2GB (#4104) * Use nodata value from source dataset in CreateCopy() (#4152) SDE driver: * Break assumption that LONG==long (#4051) SNODAS driver: * New for GDAL/OGR 1.9.0 * Read Snow Data Assimilation System datasets SRP driver: * Set Azimuthal Equidistant projection/geotransform info for ASRP north/south polar zones (#3946) * ASRP/USRP: fix skipping of padding characters on some datasets (#4254) SRTMHGT driver: * Fix segfault in CreateCopy() if we cannot create the output file Terralib driver: * Removed driver: was unfinished and is unmaintained (#3288) TIL driver: * Implement GetFileList() (#4008) TSX driver: * Add support for selecting a directory * Make Terrasar-X driver also open TanDEM-X data (#4390) * Fix memleaks USGSDEM driver: * Ensure blocks read in C locale (#3886) VRT driver: * Implement VRTDataset::IRasterIO() that can delegate to source Dataset::RasterIO() in particular cases * Implement GetMinimum() and GetMaximum() * GetFileList(): for /vsicurl/ ressources, don't actually test their existence as it can be excruciating slow * VRTComplexSource: correctly deal with complex data type (#3977) * Fix 2 segfaults related to using ' (#4080) * Add options, ZeroBlockHttpCodes and ZeroBlockOnServerException, to control which http error codes should be considered as meaning blank tile (#4169) ZMap driver: * New for GDAL/OGR 1.9.0 * Read/write GDAL driver for ZMap Plus Grid format == OGR 1.9.0 - Overview of Changes == Core: * RFC35: Add OGRLayer::DeleteField(), ReorderField(), ReorderFields() and AlterFieldDefn() * Avoid OGRLineString::addPoint( OGRPoint * poPoint ) to always force the geometry to be 3D (#3907) * Add a OGREnvelope3D object and getEnvelope( OGREnvelope3D * psEnvelope ) / OGR_G_GetEnvelope3D() method * Add OGR_G_SimplifyPreserveTopology() / OGRGeometry::SimplifyPreserveTopology() * OGR SQL: recognize optional ESCAPE escape_char clause * OGR SQL: allow NULL to be used as a value, so that 'SELECT *, NULL FROM foo works' * OGR SQL: Accept doublequoting of column_name in 'SELECT DISTINCT "column_name" FROM table_name' (#3966) * OGR SQL: OGRGenSQLResultsLayer: if the dialect is explicitely set to OGRSQL, don't propagate the WHERE clause of the SELECT to the source layer, but evaluate it instead at the OGRGenSQLResultsLayer level (#4022) * OGR SQL: Avoid error emission on requests such as 'SELECT MIN(EAS_ID), COUNT(*) FROM POLY' * OGR SQL: Avoid setting width/precision for AVG column * OGR SQL: Add a mechanism to delete a layer (DROP TABLE x) * OGR SQL: fix segfault when evaluating a 'IS NULL' on a float column (#4091) * OGR SQL: add support for new special commands : 'ALTER TABLE layername ADD COLUMN columnname columntype', 'ALTER TABLE layername RENAME COLUMN oldname TO new name', 'ALTER TABLE layername ALTER COLUMN columnname TYPE columntype', 'ALTER TABLE layername DROP COLUMN columnname' * OGR SQL: Add implicit conversion from string to numeric (#4259) * OGR SQL: Correctly parse big SQL statements (#4262) * OGR SQL: fix joining a float column with a string column (#4321) * OGR SQL: with DISTINCT, consider null values are such, and not as empty string (#4353) * OGR SQL: fix offset convertion for SUBSTR() (#4348) * Add OGR_G_GetPoints() * Fix parsing of WKT geometries mixing 2D and 3D parts * OGR_Dr_CopyDataSource() and OGRSFDriver::CopyDataSource() : make sure that the driver is attached to the created datasource (#4350) * OGRFeature::SetFrom() supports more conversions between field types. OGRSpatialReference: * Update to EPSG 7.9 database * Add Geocentric SRS Support * Add support for Interrupted Goode Homolosine projection (#4060) * Add SRS vertical unit support * Add SetVertCS(), OSRSetVertCS(), SetCompound(), IsCompound() and target oriented set/get linear units functions * ESRI : Improve spheroid remapping (#3904) * ESRI: Compare whole names in RemapNameBasedOnKeyName() (#3965). * ESRI: addition of ImportFromESRIStatePlaneWKT and ImportfromESRIWisconsinWKT methods * ESRI: importFromESRI() : support POLYCONIC projection from old style files (#3983) * ESRI: importFromESRI() : support LAMBERT_AZIMUTHAL projection from old style files (#4302) * ESRI: fix EPSG:32161 mapping * ESRI: fix Stereo/Oblique_Stereo/Double_Stereo (bugs #1428 and #4267) * ESRI: fix projection parameter mapping for Orthographic projection (#4249) * ESRI: add optional fixing of TOWGS84, DATUM and GEOGCS with GDAL_FIX_ESRI_WKT config. option (#4345 and #4378) * ESRI: fix add Krassowsky/Krasovsky 1940 spheroid mapping * Add EPSG:102113 in the data/esri_extra.wkt file * Add Germany zone 1-5 in range 31491-31495 in the data/esri_extra.wkt file * fix NAD_1983_Oregon_Statewide_Lambert_Feet_Intl code * added/updated coordinates systems provided by IGNF (#3868) * ERM: add support for EPSG:n based coordinate sysetms (#3955) * ImportFromEPSG(): Add default support for various degree units without supporting .csv file. * ImportFromEPSG(): Add support for spherical LAEA (#3828) * ImportFromEPSG(): use CoLatConeAxis parameter to build Krovak azimuth parameter (#4223) * importFromURN(): support compound SRS * importFromURN(): accept 'urn:opengis:crs:' syntax found in some TOP10NL GML files * Add CRS: support and for importing two part ESRI PE SRS with VERTCS * SetFromUserInput() : recognize 'IGNF:xxx' * Ensure that the result of importFromEPSGA() always has keyword ordering fixed up (#4178) * exportToERM() : deal with GDA94 datum and its UTM projections (#4208) * Fix ESRI_DATUM_NAME for D_MOLDREF99 and D_Philippine_Reference_System_1992 (#4378) Utilities: * ogr2ogr: Make 'ogr2ogr someDirThatDoesNotExist.shp dataSourceWithMultipleLayer' create a directory * ogr2ogr: make -overwrite/-append work with non-spatial tables created by GDAL 1.8.0; * ogr2ogr: take into account fields specified in the -where clause in combinations with -select to create the correct list of fields to pass to SetIgnoredFields() (#4015) * ogr2ogr: fix -zfield option so that the modified geometry properly reports coordinate dimension = 3. Also avoids it to be in the list of ignored field names * ogr2ogr: add -simplify option to simplify geometries * ogr2ogr: add a warning if the target filename has an extension or a prefix that isn't consistant with the default output format (i.e. Shapefile), but which matches another driver. Can be made quiet with -q option * ogrinfo/ogr2ogr: exit when SetAttributeFilter() fails, instead of silently going on (#4261) Multi driver topics: * RFC35 : implementation in Shapefile, Memory, PG and SQLite drivers (#2671) * DXF, EDIGEO, KML, LIBKML, Shapefile, SDE, SOSI: Mark as supporting UTF-8 * BNA, CSV, GPX, KML, GeoRSS, GML, LIBKML, GeoJSON, PGDump : accept both /dev/stdout and /vsistdout/ as filenames; remove 'stdout' as a valid alias that could be used in some of them (#4225, #4226) ARCGEN driver: * New for GDAL/OGR 1.9.0 * Read-only OGR driver for Arc/Info Generate files CouchDB driver: * New for GDAL/OGR 1.9.0 * Read/write OGR driver for CouchDB / GeoCouch CSV driver: * Add special recognition and handling for USGS GNIS (Geographic Names Information System) files * Directly recognize the structure of the allCountries file from GeoNames.org * Implement GetFeatureCount() to be a little bit faster * Accept /dev/stdout as a filename for CreateDataSource() * Fix handling of non-numeric values in numeric columns (NULL instead of 0) * Fix handling of column names with numbers * Recognize numeric fieldnames inside quotes * Accept real numbers with ',' as decimal separator when ';' is the field separator (CSV export in French locale) DXF driver: * Add support for DXF_ENCODING config var and DWGCODEPAGE header field (#4008) * Added DXF_MERGE_BLOCK_GEOMETRIES * Treat ATTDEFs the same as TEXT entities * Implement hatch polyline and elliptical arc support, hatch fill, do not polygonize closed smoothed lines * Add handling of hidden/frozen/off layers. DWG driver: * New for GDAL/OGR 1.9.0 * Read DWG files through the use of Open Design Alliance Teigha Libraries EDIGEO driver: * New for GDAL/OGR 1.9.0 * Read files of French EDIGEO exchange format FileGDB driver: * New for GDAL/OGR 1.9.0 * Read/write support based on FileGDB API SDK GeoJSON driver: * Support writing 3D lines and polygons * Add a bbox attribute with the geometry bounding box if WRITE_BBOX layer creation option is set (#2392) * Write bbox of FeatureCollection before features when file is seekable * Remove unsetting of FID that caused FID not at the last position of properties to be lost * Properly deal with null field values in reading and writing * Handle OFTIntegerList, OFTRealList and OFTStringList fields * Recognize other arrays as OFTString field * Fix assertion on unhandled ESRI json (#4056) * Fix segfault on feature where 'properties' member exists but isn't an object (#4057) * Better detection of OGR type for numeric JSON fields (#4082) * Add COORDINATE_PRECISION layer creation option to specify the maximum number of figures after decimal point in coordinates; set to 15 by default with smart truncation of trailing zeros (like done for WKT) * Add OGR_G_ExportToJsonEx() to accept a list of options * Add ability to detect geojson files without an extension (#4314) Geomedia driver: * New for GDAL/OGR 1.9.0 * Read-only driver to read Geomedia .MDB databases GeoRSS driver: * Parse RSS documents without element GFT driver: * New for GDAL/OGR 1.9.0 * Read/write driver for Google Fusion Tables GML driver: * Major performance improvement when reading large multi-layer GML files. See usage of new GML_READ_MODE configuration option * Support gml:xlink resolving for huge GML files through GML_SKIP_RESOLVE_ELEMS=HUGE (requires SQLite) * Add GML_GFS_TEMPLATE config option to specify a template .gfs file that can be used for several GML files with similar structure (#4380) * Be able to build the driver with support of both Expat and Xerces libraries and add ability of select one at runtime. For UTF-8 documents, we select Expat if it is available, because it is faster than Xerces * Expose fid or gml_id as feature fields if autodetected. This behaviour can be altered by the GML_EXPOSE_FID / GML_EXPOSE_GML_ID configuration option. * Improve handling of .gml and .xsd produced by FME (in particular for CanVec GML) * Be able to open .gz file directly (like OS Mastermap ones), and read/write the .gfs file next to the .gz file * Fix segfault when encountering an invalid (or unhandled by OGR) geometry and when the axis order is lat/long (#3935) * GML3: use a new method to interpret Face objects (which requires GEOS support); old method available if GML_FACE_HOLE_NEGATIVE config. option set to YES (#3937) * GML3: support Curve as a valid child for curveProperty inside directEdge parsing (#3934) * GML3: don't force the linestring to be 3D when inverting its orientation during parsing of directedEdge (#3936) * GML3: accept element in or * OGR_G_CreateFromGML(): accept with coordinate tuples separated by comma and coordinate components separated by space * Recognized schemas with inside , such as the one returned by http://deegree3-demo.deegree.org:80/deegree-utah-demo/services * Write the Z component of bounding box for 25D geometries * Force layer geometry type to 3D when there's only a .xsd file and we detect a hint that the bounding box is 3D * Handle layers of type wkbNone appropriately (#4154) * Change format of (GML 2.1.1) FID generated from Fxxx to layer_name.xxx (where xxx is the OGR FID) to ensure uniqueness (#4250) * Accept 'GML3Deegree' as a valid value for the dataset creation option FORMAT, to produce a .XSD that should be better handled by Deegree3 (#4252), and 'GML3.2' to produce GML file and schema that validate against GML 3.2.1 schema. * Don't try to parse successfully a feature type in the .xsd if there are elements we don't know how to parse. Better to rely on the .gfs mechanism (#4328) * Fix bug in OGRAtof() that caused wrong parsing of coordinates in GML files written in scientific notation (#4399) GMT driver: * Fix GetExtent() result that swallowed the first char of the minx bound (#4260) IDRISI driver: * New for GDAL/OGR 1.9.0 * Read Idrisi .VCT vector files ILI1 driver: * Fix for missing geometry in ILI1 LIBKML driver: * Set the OGRStylePen unit type to pixel when reading * Avoid ingesting zip files that are not valid kmz (#4003) * Do not use displayname to set the field name * Recognize elements of in case doesn't use a * Fix mapping of the type attribute of elements inside to OGR field type (#4171) * Parse correctly kml docs containing only one placemark * Properly set the feature style string from a placemarks style * Improve OGRStyleLabel <-> KmlLabelStyle mapping * Combine styles from the style table and features styles when LIBKML_RESOLVE_STYLE=YES (#4231) * Check that string values put in fields are valid UTF-8 (#4300) MDB driver: * New for GDAL/OGR 1.9.0 * Read-only driver to read PGeo and Geomedia .MDB databases * Relies on using the Java Jackcess library (LGPL) through JNI. MITAB driver: * Add support for reading google mercator from mapinfo (#4115) * Fixed problem of the null datetime values (#4150) * Fix problem with tab delimiter used in MIF files (#4257) MSSQLSpatial driver: * Removing 'Initial Catalog' which is not supported in the ODBC SQL driver connection strings. * Allow to specify 'Driver' in MSSQL connection strings (#4393) * Fix for the IDENTITY INSERT problem with MSSQL Spatial (#3992) * Add more verbose warnings to the geometry validator * Fix for the schema handling problem with MSSQL Spatial (#3951) * Fix for the corrupt geometry report when using the ogr2ogr -sql option (#4149) MySQL driver: * Recognize columns with types POINT, LINESTRING, etc. as geometry columns NAS driver: * Add support for treating wfs:Delete as a special Delete feature with typeName and FeatureId properties * Handle empty files gracefully (#3809) * Preliminary support for SRS in NAS files, including 3GKn SRS * Implement special treatement for to be zero passed and string (NAS #9) * Add special handling of punktkennung (NAS #12) * Add special handling for artDerFlurstuecksgrenze (#4255) * Add support for wfsext:Replace operations (PostNAS #11) * Correct NASHandler::dataHandler() to avoid trimming non-leading white space NTF driver: * Create and manage height field as floating point since some DTM products have floating point elevations. OCI driver: * Added TRUNCATE layer creation option (#4000) * Clear errors after speculative dimension calls (#4001) * Fix multithreading related problems (#4039) * Ensure that AllocAndBindForWrite does not mess up if there are no general attributes (#4063) * Implement DeleteLayer(int) method * Ensure extents updated by SyncToDisk(), and that new features are merged into existing extents (#4079) OGDI driver: * Fix GetFeature() that did not like switching between layers PG driver: * Write geometries as EWKB by default to avoid precision loss (#4138) * Return the table columns in the order they are in the database (#4194) * Add a NONE_AS_UNKNOWN layer creation option that can be set to TRUE to force layers with geom type = wkbNone to be created as if it was wkbUnknown (PostGIS GEOMETRY type) to be able to revert to behaviour prior to GDAL 1.8.0 (#4012) * Add EXTRACT_SCHEMA_FROM_LAYER_NAME layer creation option that can be set to OFF to disable analysis of layer name as schema_name.table_name * Add FID layer creation option to specify the name of the FID column * ogr2ogr: make sure that for a PG datasource, -nln public.XXX can also be used with -append * Fix CreateFeatureViaInsert() to emit 'INSERT INTO xx DEFAULT VALUES' * Fix handling of Nan with fields with non-zero width (#2112) * Use wrapper for PQexec() to use PQexecParams() instead in most cases * Add proper escaping of table and column names * OGR SQL: add proper column name escaping and quoting for PostgreSQL datasources * Launder single quote character in table name * Better reporting of error in case of failed ExecuteSQL() * Create field of type OFTString and width > 0, as VARCHAR(width) (#4202) * Add more compat with Postgis 2.0SVN (geometry_columns- #4217, unknown SRID handling) * Better behaviour, in particular in error reporting, of ExecuteSQL() when passed with non-select statements, or with select statements that have side-effects such as AddGeometryColumn() PGDump driver: * fix handling of Nan with fields with non-zero width (#2112) * Add CREATE_SCHEMA and DROP_TABLE layer creation option (#4033) * Fix crash when inserting a feature with a geometry in a layer with a geom type of wkbNone; * PG and PGDump: fix insertion of features with first field being a 0-charachter string in a non-spatial table and without FID in COPY mode (#4040) * Add NONE_AS_UNKNOWN, FID, EXTRACT_SCHEMA_FROM_LAYER_NAME layer creation options * Better escaping of column and table names * Create field of type OFTString and width > 0, as VARCHAR(width) (#4202) PGeo driver: * Move CreateFromShapeBin() method to an upper level * Only try to open .mdb files that have the GDB_GeomColumns string * Decode Z coordinate for a POINTZM shape * Aad support for decoding multipoint/multipointz geometries * Fix setting of the layer geometry type * Add support for zlib compressed streams * Implement MultiPatch decoding SDE driver: * Add support for decoding NSTRING fields (#4053) * Add support in CreateLayer() to clean up partially registered tables that aren't full spatial layers * Add logic to force envelope for geographic coordsys objects (#4054) * Add USE_STRING layer creation and configuration options information * Set SE_MULTIPART_TYPE_MASK for multipolygon layers (#4061). * Change how offset and precision are set for geographic coordinate systems to more closely match SDE SEGUKOOA driver: * New for GDAL/OGR 1.9.0 * Read files in SEG-P1 and UKOOA P1/90 formats SEGY driver: * New for GDAL/OGR 1.9.0 * Read files in SEG-Y format Shapefile driver: * Encoding support for shapefile/dbf (#882) * Allow managing datasources with several hundreds of layers (#4306) * Lazy loading of SRS and lazy initialization of attribute index support * Use VSI*L API to access .qix spatial index files * Add special SQL command 'RECOMPUTE EXTENT ON layer_name' to force recomputation of the layer extent (#4027) * Faster implementation of GetFeatureCount() in some circumstances. * Fix crash in CreateField() if there is no DBF file * Fix add field record flushing fix (#4073) * Fix decoding of triangle fan in a multipatch made of several parts (#4081) * Refuse to open a .shp in update mode if the matching .dbf exists but cannot be opened in update mode too (#4095) * Recognize blank values for Date fields as null values (#4265) * Recognize 'NULL' as a valid value for SHPT creation option as documented * Check that we are not trying to add too many fields. * Support reading measure values as Z coordinate. SQLite/Spatialite driver: * Spatialite: major write support improvements (creation/update of Spatialite DB now limited to GDAL builds with libspatialite linking) * Spatialite: add support for 3D geometries (#4092) * Spatialite: speed-up spatial filter on table layers by using spatial index table (#4212) * Spatialite: add support for reading Spatialite views registered in the views_geometry_columns * Spatialite: better support for building against amalgamated or not * Spatialite: when it exists, use srs_wkt column in spatial_ref_sys when retrieving/inserting SRS * Spatialite: add COMPRESS_GEOM=YES layer creation option to generate Spatialite compressed geometries * Spatialite: add support for VirtualXLS layers. * Spatialite: imported VirtualShape support, in particular it is now possible to open on-the-fly a shapefile as a VirtualShape with 'VirtualShape:shapefile.shp' syntax as a datasource * Implement RFC35 (DeleteField, AlterFieldDefn, ReorderFields) * Implement DeleteDataSource() * Implement DeleteFeature() * Implement SetFeature() by using UPDATE instead of DELETE / INSERT * Add capability to use VSI Virtual File API when needed (if SQLite >= 3.6.0) * Make CreateDataSource(':memory:') work * Enforce opening update/read-only mode to allow/forbid create/delete layers, create/update features (#4215) * Launder single quote character in table name; properly escape table name if no laundering (#1834) * Use ALTER TABLE ADD COLUMN by default to create a new field; older method can still be used by defining the OGR_SQLITE_USE_ADD_COLUMN config option to FALSE in order to provide read-compat by sqlite 3.1.3 or earlier * Fix bug in CreateField() : if there was already one record, the content of the table was not preserved, but filled with the column names, and not their values * Map 'DECIMAL' columns to OGR real type (#4346) * Add OGR_SQLITE_CACHE configuration option for performance enhancements * Try to reuse INSERT statement to speed up bulk loading. SVG driver: * New for GDAL/OGR 1.9.0 * Read only driver for Cloudmade Vector Stream files S57 driver: * Add support for Dutch inland ENCs (#3881) * Allow up to 65536 attributes, use GUInt16 for iAttr (#3881) * Be cautious of case where end piont of a line segment has an invalid RCID * Correct handling of update that need to existing SG2D into an existing feature without it (#4332) VRT driver: * Do not try to read too big files * Lazy initialization of OGRVRTLayer * Don't set feature field when source feature field is unset WFS driver: * Add preliminary support for WFS 2.0.0, but for now don't request it by default. * Increase performance of layer definition building by issuing a DescribeFeatureType request for several layers at the same time * Better server error reporting * Use the layer bounding box for EPSG:4326 layers (restricted to GEOSERVER for now) (#4041) * Add capability of opening a on-disk Capabilities document * Add special (hidden) layer 'WFSLayerMetadata' to store layer metadata * Add special (hidden) layer 'WFSGetCapabilities' to get the raw XML result of the GetCapabilities request * CreateFeature()/SetFeature(): use GML3 geometries in WFS 1.1.0 (make TinyOWS happy when it validates against the schema) * Make spatial filtering work with strict Deegree 3 servers * Fix reading when layer names only differ by their prefix XLS driver: * New for GDAL/OGR 1.9.0 * Read only driver for MS XLS files and relies on FreeXL library. XPlane driver: * Port to VSI*L API XYZ driver: * Ignore comment lines at the beginning of files == SWIG Language Bindings == General : * RFC 30: Correct the signature of Datasource.CreateDataSource() and DeleteDataSource(), gdal.Unlink() to accept UTF-8 filenames (#3766) * Add Band.GetCategoryNames() and Band.SetCategoryNames() * Add Geometry.GetPoints() (only for Python and Java) (#4016) * Add Geometry.GetEnvelope3D() * Add Geometry.SimplifyPreserveTopology() * Extend SWIG Geometry.ExportToJson() to accept a list of options (#4108) * Add (OGR)DataSource.SyncToDisk() * Add SpatialReference.SetVertCS(), IsSameVertCS(), IsVertical(), SetCompount(), IsCompound() * Add SpatialReference.SetIGH() (#4060) * RFC 35: Add OGRLayer.DeleteField(), ReorderField(), ReorderFields(), AlterFieldDefn() * Add gdal.VSIFTruncateL() CSharp bindings: * Implement the typemap for utf8_path in C# (#3766) * Correcting the signature of OGRDataSource.Open to make the utf8 typemap to work (#3766) Java bindings: * Turn the gdalJNI, gdalconstJNI and osrJNI into package private classes * Make Layer.GetExtent() return null when OGR_L_GetExtent() fails. Perl bindings: * The "Points" method of Geometry was not accepting its own output in the case of a single point. It accepted only a point as a list. Now it accepts a point both as a list containing one point (a ref to a point as a list) and a point as a list. * Fixed UTF-8 support in decoding names (datasource, layer, field etc.). * Assume all GDAL strings are UTF-8, handle all changes in typemaps. * Additions to Perl bindings due to new developments etc: Layer capabilities, GeometryType method for Layer, improved create, new Export and Set methods for SpatialReference. * Detect context in a typemap which returns a array, this now returns a list in list context; the change affects at least GetExtent and GetEnvelope methods, which retain backward compatibility though new and/or changed methods: FeatureDefn::Name, FeatureDefn::GeometryIgnored, FeatureDefn::StyleIgnored, Feature::ReferenceGeometry, Feature::SetFrom, FieldDefn::Ignored, Geometry::AsJSON * Perl typemaps: more correct manipulation of the stack, more cases where a list is returned in a list context, better handling of callback_data @Band::COLORINTERPRETATIONS, Band methods Unit, ScaleAndOffset, GetBandNumber, RasterAttributeTable method LinearBinning * Typemaps for VSIF{Write|Read}L, tests and docs for some VSI* functions. * Perl bindings: better by name / by index logics, some checks for silent failures, return schema as a hash if wanted, support ->{field} syntax for features, return list attributes as lists or listrefs as wished so that ->{field} works for lists too (API change) Python bindings: * Improvements for ogr.Feature field get/set * Add hack to bring Python 3.2 compatibility * First argument of VSIFWriteL() should accept buffers for Python3 compat * Fix reference leak in 'typemap(in) char **dict' * Add gdal.VSIStatL() * swig/python/setup.py : fix for virtualenv setups (#4285) * Layer.GetExtent() : add optional parameter can_return_null that can be set to allow returning None when OGR_L_GetExtent() fails * Make gdal.VSIFSeekL(), gdal.VSIFTellL() and gdal.VSIFTruncateL() use GIntBig instead of long for compat with 32bit platforms * Add script to build the python extensions with Python 2.7 and a mingw32 cross-compiler under Linux/Unix Ruby bindings: * Build SWIG Ruby Bindings against modern Ruby versions (1.8.7 and 1.9.2) (#3999)