Version 4 (modified by 12 years ago) ( diff ) | ,
---|
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
- 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:
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 '<VRTDataset', but with invalid XML, as the target filename of VRTDataset::Create()
- Fix 'VRTDerivedRasterBand with ComplexSource and nodata value yields potentially uninitialized buffer' (#4045)
- VRTDerivedRasterBand: Recognize PixelFunctionType and SourceTransferType options in AddBand() for (#3925)
- Copy GEOLOCATION metadata in CreateCopy().
- VRTDerivedRasterBand: register pixel functions in a map for faster access (#3924)
- VRT warped dataset: limit block size to dataset dimensions (#4137)
WCS driver:
- Add time support (#3449)
- Honour dimensionLimit restrictions on WCS request size.
- Fetch projection from returned image file chunks if they have them (ie. GeoTIFF).
- Honour Resample option for WCS 1.0.
- Include service url in GetFileList if ESRI_BUILD defined
- Check validity of 'OverviewCount' parameter
- Add support for getting the coverage offering details from the xml:CoverageOffering domain
- Try to preserve the servers name for a CRS (WCS 1.0.0) (#3449).
WebP driver:
- New for GDAL/OGR 1.9.0
- Read/write GDAL driver for WebP image format
WMS driver:
- Implementation of the OnEarth Tiled WMS minidriver (#3493)
- Implementation of a VirtualEarth minidriver
- Improve handling of .aux.xml files, ensure colorinterp support works for tiled wms server
- Report subdatasets when being provided WMS:http://server.url (classic WMS), WMS:http://server.url?request=GetTileService or a url to a TMS server; recognize datasets specified as a pseudo GetMap request
- Add capability to open the URL of a REST definition for a ArcGIS MapServer, like http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json
- Parse WMS-C TileSet info in VendorSpecificCapabilities of GetCapabilities
- Implement CreateCopy() when source is a WMS dataset to serialize to disk the definition of a WMS dataset
- WMS dataset : report INTERLEAVE=PIXEL
- Make autodetection of TMS work with http://maps.qualitystreetmap.org/tilecache
- Add capability to set Referer http header
- Add a TMS-specific hack for some servers that require tile numbers to have exactly 3 characters (#3997)
- Fix to make file:// URL to work
- Add hack for OSGEO:41001
- Fix GDALWMSRasterBand::IReadBlock() to avoid the ReadBlocks() optimization to become an anti-optimization in some use cases
- Add service=WMS parameter if not already provided in <ServerUrl> (#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 and PG 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 <channel> 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 <pointProperty> element in <gml:LineString> or <gml:LineStringSegment>
- OGR_G_CreateFromGML(): accept <gml:coordinates> with coordinate tuples separated by comma and coordinate components separated by space
- Recognized schemas with <complexType> inside <element>, 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:
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 <LineStyle>
- Avoid ingesting zip files that are not valid kmz (#4003)
- Do not use displayname to set the field name
- Recognize <Data> elements of <ExtendedData> in case <ExtendedData> doesn't use a <SchemaData>
- Fix mapping of the type attribute of <SimpleType> elements inside <Schema> 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 <lage> 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)