Changes between Initial Version and Version 1 of Release/2.0.0-News


Ignore:
Timestamp:
Jun 5, 2015, 5:42:33 AM (9 years ago)
Author:
Even Rouault
Comment:

2.0.0 news

Legend:

Unmodified
Added
Removed
Modified
  • Release/2.0.0-News

    v1 v1  
     1= GDAL/OGR 2.0 Release Notes =
     2
     3== In a nutshell... ==
     4
     5 * New GDAL drivers:
     6    - BPG: read-only driver for Better Portable Graphics format (experimental, no build support)
     7    - GPKG: read/write/update capabilities in the unified raster/vector driver
     8    - KEA: read/write driver for KEA format
     9    - PLMosaic: read-only driver for Planet Labs Mosaics API
     10    - ROI_PAC: read/write driver for image formats of JPL's ROI_PAC project (#5776)
     11    - VICAR: read-only driver for VICAR format
     12 * New OGR drivers:
     13    - Cloudant: read/write driver for Cloudant service
     14    - CSW: read-only driver for OGC CSW (Catalog Service for the Web) protocol
     15    - JML: read/write driver for OpenJUMP .jml format
     16    - PLScenes: read-only driver for Planet Labs Scenes API
     17    - Selaphin: read/write driver for the Selaphin/Seraphin format (#5442)
     18 * Significantly improved drivers: CSV, GPKG, GTiff, JP2OpenJPEG, MapInfo file, PG, SQLite
     19 * RFC 31: OGR 64bit Integer Fields and FIDs (trac.osgeo.org/gdal/wiki/rfc31_ogr_64)
     20   In OGR core, OGR SQL, Shapefile, PG, PGDump, GeoJSON, CSV, GPKG, SQLite, MySQL,
     21   OCI, MEM, VRT, JML, GML, WFS, CartoDB, XLSX, ODS, MSSQLSpatial, OSM, LIBKML, MITAB
     22 * RFC 46: GDAL/OGR unification ( http://trac.osgeo.org/gdal/wiki/rfc46_gdal_ogr_unification)
     23     - GDAL and OGR PDF drivers are unified into a single one
     24     - GDAL and OGR PCIDSK drivers are unified into a single one
     25 * RFC 49: Add support for curve geometries (http://trac.osgeo.org/gdal/wiki/rfc49_curve_geometries)
     26   In OGR core, and GML, NAS, PostgreSQL, PGDUMP, GPKG, SQLite, VFK, VRT, Interlis drivers
     27 * RFC 50: Add support for OGR field subtypes (http://trac.osgeo.org/gdal/wiki/rfc50_ogr_field_subtype)
     28   In OGR core, OGR SQL, swig bindings, CSV, FileGDB, GeoJSON, GML, GPKG, OpenFileGDB, PG, PGDump, SQLite, VRT
     29 * RFC 51: RasterIO() improvements : resampling and progress callback (http://trac.osgeo.org/gdal/wiki/rfc51_rasterio_resampling_progress)
     30 * RFC 52: Stricter SQL quoting (http://trac.osgeo.org/gdal/wiki/rfc52_strict_sql_quoting)
     31 * RFC 53: OGR not-null constraints and default values (http://trac.osgeo.org/gdal/wiki/rfc53_ogr_notnull_default)
     32   In OGR core, OGR SQL, PG, PGDump, CartoDB, GPKG, SQLite, MySQL, OCI, VRT, GML, WFS, FileGDB, OpenFileGDB and MSSQLSpatial
     33 * RFC 54: Dataset transactions (https://trac.osgeo.org/gdal/wiki/rfc54_dataset_transactions)
     34   In PG, GPKG, SQLite, FileGDB and MSSQLSpatial
     35 * RFC 55: refined SetFeature() and DeleteFeature() semantics.
     36   In GPKG, Shape, MySQL, OCI, SQLite, FileGDB, PG, CartoDB, MITAB and MSSQL
     37 * RFC 56: OFTTime/OFTDateTime millisecond accuracy ( https://trac.osgeo.org/gdal/wiki/rfc56_millisecond_precision )
     38 * RFC 57: 64bit histogram bucket count ( https://trac.osgeo.org/gdal/wiki/rfc57_histogram_64bit_count )
     39 * Upgrade to EPSG v8.5 database
     40 * Fix locale related issues when formatting or reading floating point numbers (#5731)
     41
     42== New installed files ==
     43 * data/gdalvrt.xsd: XML schema of the GDAL VRT format
     44
     45== Backward compatibility issues ==
     46
     47See https://svn.osgeo.org/gdal/branches/2.0/gdal/MIGRATION_GUIDE.TXT
     48
     49== GDAL/OGR 2.0 - General Changes ==
     50
     51Build(Unix):
     52 * Fix for cpl_recode_iconv.cpp compilation error on freebsd 10 (#5452)
     53 * Fix pthread detection for Android
     54 * Fix in Armadillo detection test (#5455)
     55 * Fix detection of OCI by changing linking order to please modern GCC (#5550)
     56 * Fix test to accept MariaDB 10.X as valid MySQL (#5722)
     57 * Make sure $(GDAL_INCLUDE) is first to avoid being confused by GDAL headers of a previous version elsewhere in the include path (#5664)
     58 * Always use stat rather than stat64 for Mac OSX in AC_UNIX_STDIO_64. (#5780, #5414).
     59 * Add support for ECW SDK 5.1 (#5390)
     60 * Do not enable Python bindings if PYTHON env variable is set without --with-python being explicitely specified (#5956)
     61
     62Build(Windows):
     63 * PDF: fix compilation issue with Visual Studio 2012 (#5744)
     64 * PDF: Add support to compile the pdf driver as plugin (#5813)
     65 * Add support for MrSID 9.1 SDK (#5814)
     66 * when building netCDF, HDF4, HDF5 as plugins, call registration of 'sub-drivers' GMT, HDF4Image and HDF5Image (#5802)
     67
     68Build(all):
     69 * Ruby bindings: disable autoconf and makefile support (#5880)
     70 * Fix compilation errors with json-c 0.12 (#5449)
     71 * Fix compilation error in alg/gdalgrid.cpp when AVX is available, but not SSE (#5566)
     72
     73== GDAL 2.0 - Overview of Changes ==
     74
     75Port:
     76 * Introduce a more generic lock API (recursive mutex, adaptive mutex, spinlock)
     77 * Add types for CPLMutex, CPLCond and CPLJoinableThread (only enforced in -DDEBUG mode)
     78 * Add CPLGetPhysicalRAM() and CPLGetUsablePhysicalRAM()
     79 * CPLSpawn() on Windows: quote arguments with spaces in them (#5469)
     80 * /vsigzip/: avoid infinite loop when reading broken .gml.gz file (#5486)
     81 * /vsizip/ : fix bug that caused premature end of file condition with some read patterns (#5530)
     82 * /vsizip/ on >4GB zips: accept .zip declare 0 disks (#5615)
     83 * /vsitar/: remove useless validation test that prevents from opening valid .tar files (#5864)
     84 * /vsistdout/: add VSIStdoutSetRedirection() for compatibility with MapServer FCGI (https://github.com/mapserver/mapserver/pull/4858)
     85 * /vsimem/: update st_mtime and return it with Stat()
     86 * /vsimem/: in update mode, when seeking after end of file, only extend it if a write is done
     87 * /vsimem/: Make Rename() on a directory also rename filenames under that directory (#5934)
     88 * /vsicurl/: avoid reading after end-of-file and fix failure when reading more than 16MB in a single time (#5786)
     89 * Allow CPL_VSIL_CURL_ALLOWED_EXTENSIONS to be set to special value {noext}
     90 * VSIWin32Handle::Flush(): no-op implementation is sufficient to offer same guarantee as POSIX fflush() (#5556)
     91 * Unix VSIL: reset eof in all cases in Seek()
     92 * Windows plugins: complementary fix to #5211 to avoid error dialog box when there are dependency problems (#5525)
     93 * Fix VSIReadDirRecursive() recursing on the parent or current directory (#5535)
     94 * cpl_error: obfuscate password
     95 * HTTP: set CURLOPT_NOSIGNAL if available (#5568)
     96 * Add COOKIE option to CPLHTTPFetch() (#5824)
     97 * CPLHTTPFetch(): add retry logic in case of 502, 503 and 504 errors with the GDAL_HTTP_MAX_RETRY (default: 0)and GDAL_HTTP_RETRY_DELAY (default: 30 s) config options (#5920)
     98 * Fix stack corruption upon thread termination with CPLSetThreadLocalConfigOption on Windows 32 bit (#5590)
     99 * cpl_csv: Stop probing for csv/horiz_cs.csv. (#5698)
     100 * vsipreload: implement clearerr() and readdir64() (#5742)
     101 * CPLsetlocale(): return a string that is thread-locale storage to avoid potential race in CPLLocaleC::CPLLocaleC() (#5747)
     102 * CPLHexToBinary(): faster implementation (#5812)
     103
     104Core:
     105 * Add imagery (satellite or aerial) metadata support (Alos, DigitalGlobe, Eros, GeoEye, OrbView, Landsat, Pleiades, Resurs-DK1, Spot/Formosat).
     106 * Reduce lock contention on the global cache mutex and make it possible to use spin lock instead with GDAL_RB_LOCK_TYPE=SPIN
     107 * Block cache: make block cache manager safe with respect to writing dirty blocks (#5983)
     108 * EXIF reader: fix memleak in error code path
     109 * EXIF reader: add missing validation for some data types (#3078)
     110 * Fix crash in GDALPamRasterBand::SerializeToXML() when saving an empty RAT (#5451)
     111 * ComputeStatistics(): use Welford algorithm to avoid numerical precision issues when computing standard deviation (#5483)
     112 * Fix crashing issue with TLS finalization on Unix (#5509)
     113 * GDALJP2Metadata::CreateGMLJP2(): use EPSGTreatsAsLatLong() and EPSGTreatsAsNorthingEasting() to determine if axis swapping is needed (#2131)
     114 * GDALJP2AbstractDataset: implement GetFileList() to report .wld/.j2w if used
     115 * GMLJP2: be robust when parsing GMLJP2 content that has nul character instead of \n (#5760)
     116 * GMLJP2: add missing rangeParameters element to validate against GMLJP2 schema (#5707)
     117 * GMLJP2: write non null bounding box at root of FeatureCollection (#5697)
     118 * GMLJP2: SRS export as GML: output XML definition of a SRS as a GML 3.1.1 compliant Dictionary (#5697)
     119 * GMLJP2: when setting GDAL_JP2K_ALT_OFFSETVECTOR_ORDER=TRUE write it as a XML comment so that we can interpret the OffsetVector elements correctly on reading
     120 * GMLJP2: when parsing a GMLJP2 box, accept srsName found on gml:RectifiedGrid if not found on origin.Point, so as to be compatible with the example of DGIWG_Profile_of_JPEG2000_for_Georeferenced_Imagery.pdf (#5697)
     121 * GMLJP2: add compatibility with GMLJP2 v2.0 where SRS is expressed as CRS URL
     122 * GMLJP2: on reading, don't do axis inversation if there's an explicit axisName requesting easting, northing order (#5960); also strip axis order in reported SRS
     123 * JP2Boxes: add null terminated byte to GDAL XML, XML or XMP boxes
     124 * Add GDALGetJPEG2000Structure() (#5697)
     125 * GDALMultiDomainMetadata::XMLInit(): when importing XML metadata, erase the existing document to replace it with the new one
     126 * Metadata: fix correct sorting of StringList / metadata (#5540, #5557)
     127 * Make GetMaskBand() work with GDT_UInt16 alpha bands (#5692)
     128 * Fix 32bit overflow in GDALRasterBand::IRasterIO() and  GDALDataset::BlockBasedRasterIO() (#5713)
     129 * RasterIO: small optimization in generic RasterIO() implementation to avoid loading partial tiles at right and/or bottom edges of the raster when they are going to be completely written
     130 * Fix crash when calling GetTiledVirtualMem() on non-Linux platform (#5728)
     131 * Add GDAL_OF_INTERNAL flag to avoid dataset to be registered in the global list of open datasets
     132 * GDALDriver::CreateCopy(): accept _INTERNAL_DATASET=YES as creation option, so as to avoid the returned dataset to be registered in the global list of open datasets
     133 * Implement GDALColorTable::IsSame()
     134 * GDALPamDataset: do not serialize dataset metadata unless it has been set through GDALDataset::SetMetadata() or GDALDataset::SetMetadataItem()
     135 * GDALLoadTabFile: add TAB_APPROX_GEOTRANSFORM=YES/NO configuration option to decide if an approximate geotransform is OK (#5809)
     136 * Optimize copy efficiency from tiled JPEG2000 images
     137 * Avoid fetching remote non-existing resources for sidecar files, when using /vsicurl/ with a URL that takes arguments (#5923)
     138
     139Algorithms:
     140 * RPC transformer: fix near interpolation in RPC DEM (#5553)
     141 * RPC transformer: take into account nodata in RPC DEM (#5680)
     142 * RPC transformer: add RPC_DEM_MISSING_VALUE transformer option to avoid failure when there's no DEM at the transformed point (#5730)
     143 * RPC transformer: in DEM mode, implement optimization, in specific conditions (input points at same longitude, DEM in EPSG:4326) to extract several elevations at a time
     144 * TPS transformer: fix crash if the forward or backward transform cannot be computed (#5588)
     145 * OpenCL warper: remove unused variable in bilinear resampling that can cause compilation error (#5518)
     146 * OpenCL wraper: fix code compilation with NVIDIA OpenCL (#5772)
     147 * Overview: Fix and speed-up cubic resampling in overview computation to take into account scaling factor (#5685)
     148 * Overview: ignore alpha=0 values when compute an average overview of an alpha band; and also avoid memory errors when calling GetMaskBand()/GetMaskFlags() after overview computation if GetMaskXXX() has been called before (#5640)
     149 * Overview: avoid crash when computing overview with a X dimension much smaller than Y dimension (#5794)
     150 * GDALRegenerateOverviewsMultiBand(): fix stride calculation error with certain raster dimensions (#5653)
     151 * Warper: numerous speed optimizations (SSE2 specific code, more fast code paths, ...)
     152 * Warper: fix Cubic and Bilinear resampling to work correctly with downsizing (#3740)
     153 * Warper: fix and optimize CubicSpline
     154 * Warper: regardless of the warping memory limit, add heuristics to determine if we must split the target window in case the 'fill ratio' of the source dataset is too low (#3120)
     155 * Warper: accept warping options METHOD=NO_GEOTRANSFORM and DST_METHOD=NO_GEOTRANSFORM to run gdalwarp on ungeoreferenced images
     156 * Warper: fix GDALSuggestedWarpOutput() wrong extent in some circumstances (e.g. dataset of big dimension with world coordinates) (#5693)
     157 * Warper: fix integer overflow when reprojecting into an area with (part of) bounds completely outside of the source projection (#5789)
     158 * Warper: add min,max,med,q1 and q3 resampling algorithms (#5868)
     159 * Warper: add a SRC_COORD_PRECISION warping option to help getting more reproducable output when -wm parameter changes (#5925)
     160 * Warper: fix failure in GDALSuggestedWarpOut2() when top-left and bottom-right corners tranform to the same point (#5980)
     161 * GDALReprojectImage(): takes into account nodata values set on destination dataset
     162 * Median cut and dithering: optimizations and enhancements to deal with 8-bit precision (only if using internal interface for now)
     163 * rasterfill: add option to specify driver to use for temporary files
     164 * Polygonize: speed optimization: do not try to build the polygon for pixels that are masked by the mask band (i.e. alpha, nodata, etc...). Can considerably speed-up processing when the nodata outline forms a very complex polygon
     165
     166Utilities:
     167 * gdalinfo: display extra metadata domains attached to band, and refactor code a bit (#5542)
     168 * gdalinfo: add -oo option per RFC 46
     169 * gdalinfo: add -json switch (partial implementation of RFC 44)
     170 * gdaladdo: add -oo option per RFC 46
     171 * gdaladdo: add warning when subsampling factor 1 specified
     172 * gdal_translate: add -oo option per RFC 46
     173 * gdal_translate: add -r and -tr options per RFC 51
     174 * gdal_translate: add a -projwin_srs option to be able to express -projwin coordinates in another SRS than the one of the dataset
     175 * gdal_translate: support -'outsize avalue 0' or '-outsize 0 avalue' to preserve aspect ratio
     176 * gdal_translate: avoid preserving statistics when changing data type in situations where clamping can occur
     177 * gdal_translate: adjust RPC metadata (pixel/line offset/scale) when subsetting/rescaling, instead of just discarding it
     178 * gdal_translate: don't recopy band units if rescaling or unscaling is involved (#3085)
     179 * gdal_translate: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828)
     180 * gdal_translate: preserve NBITS image structure metadata when possible
     181 * gdalwarp: add -oo option per RFC 46
     182 * gdalwarp: add -te_srs option to specify -te in a SRS which isn't the target SRS
     183 * gdalwarp: add a -ovr option to select which overview level to use, and default to AUTO. Also add a generic OVERVIEW_LEVEL=level open option, and make it available in standard VRT (#5688)
     184 * gdalwarp: initialize destination dataset to no_data value when automatically propagating source nodata (#5675)
     185 * gdalwarp: only apply INIT_DEST when processing the first input dataset (#5387)
     186 * gdalwarp: increase GDAL_MAX_DATASET_POOL_SIZE default value to 450. (#5828)
     187 * gdalwarp: do not preserve NODATA_VALUES metadata item in output dataset if adding an alpha channel with -dstalpha
     188 * gdalwarp: fix '-dstnodata none' to avoid read of uninitialized values (#5915)
     189 * gdalwarp: make -crop_to_cutline densify cutline in source SRS before reprojecting it to target SRS (#5951)
     190 * gdaldem: avoid too large files to be produced when using -co COMPRESS=xxxx -co TILED=YES (#5678)
     191 * gdallocationinfo: add -oo option
     192 * gdaltransform: add a -output_xy flag to restrict output coordinates to 'x y' only
     193 * gdal_grid: use nodata= parameter in the algorithm string to determine the nodata value to set on the band (#5605)
     194 * gdalbuildvrt: add a -r option to specify the resampling algorithm
     195 * gdal_edit.py: add -unsetstats option (and fix -a_nodata to run on all bands, ant not just first one)
     196 * gdal_edit.py: add -stats and -approx_stats flags (patch by mwtoews, #5805)
     197 * gdal_edit.py: change -mo add metdata to existing one; add new option -unsetmd to clean existing metadata
     198 * gdal_edit.py: add -oo to specify open options
     199 * gdal_retile.py: fix to make it work with input images of different resolutions (#5749)
     200 * gdal_retile.py: implement progress bar (#5750)
     201 * gdal_merge.py: add timing information in verbose output
     202 * gdal_merge.py: take into account alpha band to avoid writing zones of source images that are fully transparent (#3669)
     203 * gdal2tiles.py: fix inverted long/lat in BoundingBox and Origin elements of tilemapresource.xml (#5336)
     204 * pct2rgb.py: make it work with color tables with less than 256 entries (#5555)
     205 * gdal_fillnodata.py: FillNodata: copy no data value to destination band when creating a dataset (if available) (#4625)
     206 * gdal_proximity.py: add a -use_input_nodata flag
     207 * gdalcompare.py: add options to supress selected comparisons
     208 * gdalcompare.py: takes into account differences in overview bands
     209 * gdalcompare.py: compute difference on float to avoid integer underflow
     210 * epsg_tr.py: change to make it possible to export GEOCCS and COMPD_CS to proj.4 epsg and PostGIS spatial_ref_sys.sql files
     211
     212Python samples:
     213 * Added swig/python/samples/jpeg_in_tiff_extract.py
     214 * Added dump_jp2.py
     215 * Added validate_jp2.py
     216 * Added build_jp2.py
     217 * Added gcps2ogr.py
     218 * tolatlong.py: report error when operating on a non-georeferenced dataset
     219
     220AAIGRID:
     221 * Fix formatting string (#5731)
     222
     223BAG driver:
     224 * change nodata value for uncertainty band to 1e6 (#5482)
     225
     226BMP driver:
     227 * backout r17065 change that infered georeferencing based on the resolution information in the BMP header (#3578)
     228
     229DIMAP driver:
     230 * DIMAP 2: handle the case where the Raster_Data element is in main file (#5018, #4826)
     231 * DIMAP 2: fix to extract geodetic SRS (#5018, #4826)
     232 * DIMAP 2: fix to extract geotransform from JPEG2000 file if not available in XML (#5018, #4826)
     233
     234DDS driver:
     235 * Add ETC1 compression format support
     236 * Header correction for worldwind client
     237
     238ECW driver:
     239 * correctly assign color interpretation to bands if order is unusual
     240
     241ENVI driver:
     242 * avoid generating potentially corrupted .hdr files when opening in update mode; Write 'Arbitrary' instead of 'Unknown' as the projection name for an undefined SRS (#5467)
     243 * when writing, consider that LOCAL_CS SRS is like ungeoreferenced (#5467)
     244
     245ERS driver:
     246 * reset RasterInfo.RegistrationCellX/Y if setting a new geotransform on an updated .ers file (#5493)
     247 * fix SetProjection() (#5840)
     248
     249GeoRaster driver:
     250 * fix Oracle SRID authority (#5607)
     251 * fix user-defined SRID issue (#5881)
     252 * new SRID search (#5911)
     253
     254GIF driver:
     255 * add compatibility with giflib 5.1 (#5519)
     256 * fix crash on images without color table (#5792)
     257 * fix reading of interlaced images with giflib >= 5.0
     258 * validate the size of the graphic control extension block (#5793)
     259 * implement GetFileList() to report worldfile
     260
     261GRASS driver:
     262 * GRASS 7.0.0 support (#5852)
     263
     264GRIB driver:
     265 * avoid divide by zero while setting geotransform on 1xn or nx1 grib file (#5532à
     266 * allow writing PDS template numbers to all bands (#5144)
     267
     268GTiff driver:
     269New capabilities:
     270 * for JPEG-in-TIFF, use JPEG capabilities to decompress fast overview levels 2,4 and 8, to generate 'hidden' overviews used by RasterIO()
     271 * add DISCARD_LSB creation option (lossy compression) to be best used with PREDICTOR=2 and LZW/DEFLATE compression
     272 * when GTIFF_DIRECT_IO=YES is enabled, performance improvements in GTiffRasterBand::DirectIO() with Byte dataset and Byte buffer
     273 * implement dataset DirectIO()
     274 * add GTIFF_VIRTUAL_MEM_IO=YES/NO/IF_ENOUGH_RAM configuration option so that RasterIO() can rely on memory-mapped file I/O (when possible and supported by the OS)
     275 * support reading and created streamable files
     276 * for JPEG-compressed TIFF, avoid quantization tables to be emitted in each strip/tile and use optimized Huffman coding by default
     277 * avoid SetNoDataValue() to immediately 'cryztalize' the IFD
     278 * allow unsetting TIFFTAG_SOFTWARE, TIFFTAG_DOCUMENTNAME, etc... by removing them from metadata list or passing None as a value of SetMetadataItem() (#5619)
     279 * allow lossless copying of CMYK JPEG into JPEG-in-TIFF
     280 * set alpha on target by default when translating from Grey+Alpha
     281 * Internal overviews: for near, average, gauss and cubic, and pixel interleaving, make sure to use the same code path for compressed vs uncompressed overviews (#5701)
     282 * add RPCTXT=YES creation option to write sidecar _RPC.TXT file
     283 * internal libtiff updated to upstream libtiff 4.0.4beta
     284 * internal libgeotiff updated to upstream libgeotiff SVN head
     285 * speed optimization on write (at least in Vagrant) (#5914)
     286 * use importFromEPSG() when ProjectedCSTypeGeoKey is available (#5926)
     287 * on reading better deal with a few ESRI formulations of WebMercator (#5924)
     288Fixes:
     289 * when overriding metadata in update mode, make sure to clear it from PAM file (#5807)
     290 * fix handling of Mercator_2SP (#5791)
     291 * avoid TIFF directory to be written (at end of file) when creating a JPEG-in-TIFF file
     292 * for a paletted TIFF with nodata, set the alpha component of the color entry that matches the nodata value to 0, so as gdal_translate -expand rgba works properly
     293 * fix to make band SetMetadata(NULL) clear band metadata (#5628)
     294 * fix error message when requesting a non existing directory
     295 * check data type with PHOTOMETRIC=PALETTE
     296 * be robust to out-of-memory conditions with SplitBand and SplitBitmapBand
     297 * avoid using optimized JPEG --> JPEG-in-TIFF path if INTERLEAVE=BAND is specified with a 3-band JPEG
     298 * to make Python bindings happy, avoid emitting CE_Failure errors due to libtiff errors when we still manage to open the file (#5616)
     299 * avoid crash when reading GeoTIFF keys if the stored key type isn't the one expected
     300 * make sure to call libgeotiff gtSetCSVFilenameHook() method when linking against external libgeotiff
     301 * avoid/limit DoS with huge number of directories
     302 * clean spurious spaces when reading values from _RPC.TXT
     303 * serialize RPC in PAM .aux.xml file if using PROFILE != GDALGeoTIFF and RPB = NO
     304 * fix clearing of GCPs (#5945)
     305 * avoid generated corrupted right-most and bottom-most tiles for 12-bit JPEG-compressed (#5971)
     306 * make sure to use scanline write API when writing single-band single-strip 1-bit datasets
     307
     308GRASS driver:
     309 * fix compilation issues against GRASS 7
     310
     311HDF4 driver:
     312 * Add configuration support to be able to open more files simultaneously
     313 * Add class suffix to the parameter name when parsing HDF-EOS objects.
     314 * Fix AnyTypeToDouble() to use proper type (int instead of long) to work with DFNT_INT32/DFNT_UINT32 on 64-bit Linux (#5965)
     315 * MODIS: Set more correct values for PIXEL_/LINE_ OFFSET/STEP by comparing longitude and latitude subdatasets dimensions with main subdataset dimensions
     316
     317HDF5 driver:
     318 * avoid opening BAG files in the case HDF5 and BAG are plugins, and HDF5 is registered before BAG
     319
     320HFA driver:
     321 * fix recognition of Hotine Mercator Azimuth Center in Imagine format (and Swisstopo GeoTIFF) (#5551)
     322 * fix various hangs on invalid files
     323 * read projection even when it does not contain datum information (#4659)
     324
     325HTTP driver/wrapper:
     326  * make it work with vector files too
     327  * fix handling of non VSI*L file on Windows
     328
     329IRIS driver:
     330 * add support for the SHEAR data type (#5549)
     331
     332JPEG2000 driver:
     333 * do expansion of 1-bit alpha channel to 8-bit by default. Can be controlled with the 1BIT_ALPHA_PROMOTION open option (default to YES)
     334 * add GMLJP2 creation option
     335 * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box
     336 * Add capability of reading GMLJP2 v2 embedded feature collections and annotations
     337 * Add read/write support for RPC in GeoJP2 box (#5948)
     338
     339JP2ECW driver:
     340 * add metadata about JPEG2000 codestream and boxes (#5408)
     341 * Add 1BIT_ALPHA_PROMOTION open option (default to YES) to control expansion of 1-bit alpha channel to 8-bit
     342 * correctly assign color interpretation to bands if order is unusual
     343 * add WRITE_METADATA and MAIN_MD_DOMAIN_ONLY creation options to write GDAL metadata, JP2 XML boxes or XMP box
     344 * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box
     345 * Add capability of reading GMLJP2 v2 embedded feature collections and annotations
     346 * Add read/write support for RPC in GeoJP2 box (#5948)
     347
     348JP2KAK driver:
     349 * Compatibility with Kakadu v7.5 (#4575, #5344)
     350 * Handle Kakadu version 7 allocator.finalize (#4575)
     351 * fix bug in vsil_target::end_rewrite() that prevented TLM index to be generated (#5585)
     352 * Add FLUSH in creation option XML (#5646)
     353 * Do expansion of 1-bit alpha channel to 8-bit by default. Can be controlled with the 1BIT_ALPHA_PROMOTION open option (default to YES)
     354 * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box
     355 * Add capability of reading GMLJP2 v2 embedded feature collections and annotations
     356 * Add read/write support for RPC in GeoJP2 box (#5948)
     357
     358JP2OpenJPEG driver:
     359 * Support writing arbitrary number of bands. (#5697)
     360 * Generate cdef box when transparency is needed. Add NBITS, 1BIT_ALPHA and ALPHA creation options (#5697)
     361 * add INSPIRE_TG (for conformance with Inspire Technical Guidelines on Orthoimagery), PROFILE, JPX and GEOBOXES_AFTER_JP2C creation option (#5697)
     362 * add GMLJP2V2_DEF creation option to create a GMLJP2 v2 box
     363 * Add capability of reading GMLJP2 v2 embedded feature collections and annotations
     364 * add PRECINCTS creation option (#5697)
     365 * allow several quality values to be specified with QUALITY creation option. Add TILEPARTS, CODEBLOCK_WIDTH and CODEBLOCK_HEIGHT options (#5697)
     366 * support reading&writing datasets with unusual order of band color interpretation (#5697)
     367 * add WRITE_METADATA and MAIN_MD_DOMAIN_ONLY creation options to write GDAL metadata, JP2 XML boxes or XMP box (#5697)
     368 * add support for reading/writing/updating IPR box (from/into xml:IPR metadata domain) (#5697)
     369 * add YCC creation option to do RGB->YCC MCT, and turn it ON by default (#5634)
     370 * add USE_SRC_CODESTREAM=YES experimental creation option, to reuse the codestream of the source dataset unmodified
     371 * support reading & writing images with a color table (#5697)
     372 * support update mode for editing metadata and georeferencing (#5697)
     373 * add compatibility with OpenJPEG 2.1 (#5579)
     374 * fix warning when reading a single tile image whose dimensions are not a multiple of 1024 (#5480)
     375 * Add 1BIT_ALPHA_PROMOTION open option (default to YES) to control expansion of 1-bit alpha channel to 8-bit
     376 * Add read/write support for RPC in GeoJP2 box (#5948)
     377 * limit number of file descriptors opened
     378
     379JPEG driver:
     380 * use EXIF overviews if available
     381 * add EXIF_THUMBNAIL creation option to generate an EXIF thumbnail
     382 * use optimized Huffman coding to reduce file size
     383 * add support for reading and writing COMMENT
     384 * optimize whole image reading with dataset IRasterIO()
     385 * report non-fatal libjpeg errors as CE_Warning (or CE_Failure if GDAL_ERROR_ON_LIBJPEG_WARNING = TRUE) (#5667)
     386 * in compressor, increase default val of max_memory_to_use to 500MB
     387
     388JPIPKAK driver:
     389 * avoid symbol collision with kdu_cpl_error_message from JP2KAK driver
     390 * reset the bNeedReinitialize flag after a timeout (#3626)
     391
     392KMLSuperOverlay driver:
     393 * fix truncated raster on 32 bit builds (#5683)
     394 * make Identify() more restrictive to avoid false positives
     395
     396L1B driver:
     397 * add support for little-endian LRPT datasets (#5645)
     398 * expose band mask when there are missing scanlines (#5645)
     399 * expose WGS-84 or GRS-80 datum if read from header record (#5645)
     400
     401MAP driver:
     402 * retrieve the image filename in a case insensitive way (#5593)
     403
     404MBTiles driver:
     405 * better detection of 4 bands dataset and take into account alpha component of color table in RasterIO() (#5439)
     406 * avoid wrong detection of 3 bands when finding paletted PNG in /vsicurl mode (#5439)
     407 * fix dimension computation when opening a single tile dataset
     408 * better computation of extent from min/max of tile coordinates, for a single zoom level
     409 * use standard EPSG:3857 origin to fix a ~8m shift (#5785)
     410
     411MEM driver:
     412 * implement optimized versions of raster band and dataset IRasterIO()
     413
     414MSG driver:
     415 * fix compilation problem (#5479)
     416 * fix memory leaks (#5541)
     417
     418NetCDF driver:
     419 * Force block size to 1 scanline for bottom-up datasets if nBlockYSize != 1 (#5291)
     420 * Fix computation of inverse flattening (#5858)
     421 * In case the netCDF driver is registered before the GMT driver, avoid opening GMT files
     422 * Fix crash on opening a NOAA dataset (#5962)
     423
     424NGSGEOID driver:
     425 * make Identify() more restrictive
     426
     427NITF driver:
     428 * deal correctly with JPEG2000 NITF datasets that have a color table inboth Image Subheader and JP2 boxes, and for drivers that don't do color table expension
     429 * HISTOA TRE: put definition of TRE in conformance with STDI-0002 (App L page 14) and STDI-0006 (Page 57) (#5572)
     430
     431OGDI driver:
     432 * Remove OGDIDataset::GetInternalHandle (#5779).
     433
     434OZI driver:
     435 * remove .map header detection from Identify() since this is actually handled by the MAP driver
     436
     437PCIDSK driver:
     438 * close dataset in case of exception in PCIDSK2Dataset::LLOpen() (#5729)
     439
     440PCRaster driver:
     441 * Allign libcsf code with PCRaster raster format code (#5843)
     442 * Implement Create() (#5844)
     443 * Improve handling of no-data value (#5953)
     444
     445PDF driver:
     446 * add compatibility with Poppler 0.31.0
     447 * in the OGC Best practice case, switch rotational terms of the geotransform matrix (gt[2] and gt[4])
     448 * in the OGC Best practice case, handle rotations of 90 and 270 degrees.
     449 * advertize LAYERS metadata domain
     450 * deal with OHA- datum (Old Hawaiian)
     451 * fix compilation problem with Podofo on Windows (patch by keosak, #5469)
     452 * add sanity check on page count
     453
     454PDS driver:
     455 * Added support for SPECTRAL_QUBE objects used e.g. by THEMIS instrument of Mars Odyssey spacecraft.
     456
     457PNG driver:
     458 * add creation options to write metadata in TEXT/iTXt chunks
     459 * optimize whole image reading with dataset IRasterIO()
     460 * Internal libpng: update to 1.2.52
     461
     462PostgisRaster driver:
     463 * Fix read of metadata for tables with multiple raster cols (#5529)
     464
     465Rasterlite driver:
     466 * accept space in filename
     467
     468RPFTOC driver:
     469 * add tweak for weird relative directory names in the A.TOC file (#5979)
     470
     471VRT driver:
     472 * VRT warp: make selection of source overview work (#5688)
     473 * VRT warp: expose as many overviews in warped dataset as there are in source dataset, and make warped VRT honour -ovr parameter of gdalwarp (#5688)
     474 * make sure nodata value set on VRT raster band is taken into account in statistics computation (#5463)
     475 * fix ComputeStatistics() on VRT that are a sub-window of source dataset (#5468)
     476 * VRT raw: fix corrupted serialization on Windows (#5531)
     477 * implement heuristics to determine if GetMinimum()/GetMaximum() should use the implementation of their sources of not. Can be overriden by setting VRT_MIN_MAX_FROM_SOURCES = YES/NO (#5444)
     478 * VRT warp: avoid to warp truncated blocks at right/bottom edges, so that scale computation is correct
     479 * fix RasterIO() to be able to fill buffers larger than 2GB (#5700)
     480 * fix performance problem when serializing into XML a big number of sources
     481 * do not output empty <Metadata> node on VRTDataset and VRTRasterBand elements
     482 * fix rounding of output window size on VRTSimpleSource (#5874)
     483 * add trick to make relativeToVRT works for a VRT-in-VRT
     484 * add more checks to CheckCompatibleForDatasetIO() to avoid issues with overview bands (#5954)
     485 * preserves relative links on reserialization of existing VRT (#5985)
     486
     487USGSDEM driver:
     488 * take into account horizontal unit = ft in the UTM case (#5819)
     489
     490TIL driver:
     491 * fix half pixel shift in geo registration (#5961)
     492
     493WEBP driver:
     494 * Lazy uncompressed buffer allocation and optimize band-interleaved IRasterIO() for whole image reading
     495
     496WMS driver:
     497 * Add support for ArcGIS server REST API
     498 * fix to make GDAL_DEFAULT_WMS_CACHE_PATH configuration option work as expected (#4540)
     499 * move the WMS layer name encoding to be done before the sub datasets URLs are created.
     500
     501XYZ driver:
     502 * fix back line seeking with datasets that have not the same number of values per lines (#5488)
     503 * deal with lines that have missing values (but still regularly spaced)
     504
     505== OGR 2.0 - Overview of Changes ==
     506
     507Core:
     508 * OGRPolygon::importFromWkt(): fix memleak when importing broken 2.5D polygon
     509 * Fix OGRFeature::SetGeometryDirectly() and SetGeomFieldDirectly() to free the passed geometry even if the method fails (#5623)
     510 * OGR SQL: Add hstore_get_value(hstore, key) function
     511 * OGR SQL: sanitize how we deal with field names expressed as table_name.field_name and "fieldname.with_point_inside". By default, use standard quoting rules, and be tolerant when there's no ambiguity
     512 * OGR SQL: support arbitrary boolean expression on ON clause of a JOIN
     513 * OGR SQL: accept AS keyword in 'FROM table_name AS alias' clause
     514 * OGR SQL: don't consider backslash-doublequote as an escape sequence when inside a single-quoted string literal
     515 * Add OGR_API_SPY mechanism (http://www.gdal.org/ograpispy_8h.html)
     516 * Make OGRParseDate() recognize ISO 8601 format
     517 * ogr_core.h: only ignore -Wfloat-equal for IsInit() and not for the rest of the file and files that include it (#5299)
     518 * OGR layer algebra: properly initialize field maps to avoid Valgrind warnings in OGRLayer::Update() (#5778)
     519 * Make OGR_F_SetFieldBinary() set OFTString fields, mostly for testing purposes
     520 * OGR_G_CreateGeometryFromJson(): attach a WGS84 SRS to the returned geometry if the json object has no 'crs' member (#5922)
     521
     522OGRSpatialReference:
     523 * Upgrade to EPSG v8.5 database
     524 * Proj.4 import: for HOM, make sure +no_off/no_uoff is preserved, and change default value of gamma parameter to be the same as alpha (#5511)
     525 * Proj.4 export: export Aitoff, Winkel I, Winkel II, Winkel-Tripel, Craster, Loximuthal, Quartic Authalic
     526 * Adding support for Mercator_Auxiliary_Sphere without AUTHORITY SECTIONS (#3962)
     527 * Add QSC (Quadrilateralized_Spherical_Cube) projection, compatible with PROJ 4.9
     528 * Various fixes to put EXTENSION node before AUTHORITY and make it pass Validate() (#5724)
     529 * importFromEPSG()/exportToProj4(): avoid precision loss in TOWGS84 parameters, e.g. on Amersfoort / RD EPSG:4289 (https://trac.osgeo.org/proj/ticket/260)
     530 * Add OSRCalcInvFlattening() and OSRCalcSemiMinorFromInvFlattening(), and use them in various places (#5858)
     531 * Remove deprecated variant of OGRSpatialReference::importFromOzi() (#5932)
     532
     533Utilities:
     534 * ogrinfo: add -oo option per RFC 46
     535 * ogrinfo: display dataset and layer metadata. Add -nomdd, -listmdd, -mdd all|domain options, like in gdalinfo. OGR VRT: add dataset and layer metadata support
     536 * ogrinfo: add -nocount and -noextent options
     537 * ogr2ogr: add -oo and -doo options per RFC 46
     538 * ogr2ogr: add -spat_srs option
     539 * ogr2ogr: turn string value to one element list if destination field is stringlist
     540 * ogr2ogr: fix problem with SRS when copying layers with multiple geometry columns with different SRS (#5546)
     541 * ogr2ogr: add special case for -update and GPKG and input=output
     542 * ogr2ogr: when copying a layer that has a source integer/integer64 field with same name as target FID column, avoid creating it into target layer and use its content as the FID value (#5845)
     543 * ogr2ogr: in non-append mode, if target layer has a FID creation option, reuse source FID name and source FIDs, unless -unsetFid is specified (#5845)
     544 * ogr2ogr: copy source dataset and layer metadata, unless disabled by -nomd. Additionnal dataset metadata can be set with -mo KEY=VALUE
     545 * ogr2ogr: add -ds_transaction to force dataset transactions, mainly for FileGDB driver
     546 * ogr2ogr: fix crash with -clipdst when a reprojection fails before (#5973)
     547 * ogrlineref: fix project if reper lies on first point or last point of line
     548 * ogr_layer_algebra.py: for Update, Clip and Erase, only creates attribute of input layer by default (#5976)
     549
     550Other:
     551 * OGR WCTS removed from tree
     552
     553Cross driver changes:
     554 * MSSQLSpatial and GPKG: use standardized 'GEOMETRY_NAME' option name. Add GEOMETRY_NAME to SQLite (#5816)
     555 * FileGDB and MySQL: use standardized 'FID' option name. SQLite: add a FID layer creation option (#5816)
     556 * SQLite, GPKG, PG, PGDump: in a newly created table, allow to create a integer field with same name of FID column (#5845)
     557
     558BNA driver:
     559 * fix segfault when calling GetNextFeature() on a write-only layer
     560
     561CartoDB:
     562 * add CARTODBFY layer creation option
     563 * launder layer and column names by default (#5904)
     564 * enable by default batch insertion of features in update mode
     565 * on a newly created layer, send new features created by CreateFeature() by chunks of a maximum size of 15 MB (configurable through CARTODB_MAX_CHUNK_SIZE).
     566 * implement deferred field creation
     567 * support boolean type
     568 * register tables with cdb_cartodbfytable()
     569 * fix creation of features with Date/DateTime/Time values
     570 * fix for multi-user account, and optimization for SQL layers
     571 * implement TestCapability() and CreateDataSource() similarly to PostgreSQL, i.e. redirect to Open() in update mode
     572 * accept a user column to have the same name of the FID (cartodb_id)
     573 * do automatic polygon->multipolygon promotion at creation time
     574 * in authenticated mode, retrieve all column information, including spatial info, default value and primary key in one single statement
     575 * use integer primary key of tables, when available, to scroll faster among features instead of using OFFSET/LIMIT (#5906)
     576
     577CSV driver:
     578 * add optional field type detection with AUTODETECT_TYPE=YES open option
     579 * add QUOTED_FIELDS_AS_STRING open option that default to NO. So by default, if AUTODETECT_TYPE=YES, the content of quoted fields will be tested for real, integer,... data types
     580 * fix to avoid truncation of WKT geometries to 8000 characters (#5508)
     581 * fix segfault when reading allCountries.txt of geonames.org (#5668)
     582 * accept space as separator as input/output, and add MERGE_SEPARATOR=YES/NO open option
     583
     584DXF driver:
     585 * improve TestCapability(ODsCCreateLayer)
     586
     587FileGDB driver:
     588 * add layer creation option to set CONFIGURATION_KEYWORD
     589 * avoid error message when failing to import SRS from WKID code (might be an ESRI code for example)
     590 * do not reject features with null geometry
     591 * use LatestWKID when available (#5638)
     592 * avoid emitting error when opening a FileGDB v9, so that OpenFileGDB can be tried to open it, in the case FileGDB is a plugin (#5674)
     593 * fix CreateFeature() to work when a esriFieldTypeGlobalID field is not set
     594 * report width of string fields (#5806)
     595 * add compatibility with FileGDB SDK v1.4
     596 * enable bulk load on newly created layers
     597
     598GeoJSON driver:
     599 * implement Date/Time/DateTime field type detection
     600 * expose a 'id' object, of type string, directly on Feature object (not in its properties) as a field
     601 * add FLATTEN_NESTED_ATTRIBUTES and NESTED_ATTRIBUTE_SEPARATOR open options
     602 * TopoJSON: establish layer schema from objects properties (#5870)
     603 * implement automatic scrolling through result sets of ArcGIS GeoServices Feature Service (#5943)
     604 * accept and skip UTF-8 BOM (#5630)
     605 * ESRIJson: parse correctly rings of esriGeometryPolygon objects to build correct Polygon or MultiPolygon (#5538)
     606 * avoid truncation of real numbers on reading (#5882)
     607 * internal libjson-c: Fix to read floating point numbers in non C locale (#5461)
     608 * improve TestCapability(ODsCCreateLayer)
     609 * make string comparison for authority name case insensitive so as to recognize lowercase 'epsg' (#4995)
     610 * support reading Feature without geometry field
     611
     612GeoRSS driver:
     613 * fix to parse ATOM feed documents with atom: namespace (#5871)
     614
     615GME driver:
     616 * Added fixes discovered while using v.in.ogr and v.out.ogr in GRASS
     617
     618GML driver:
     619 * add XSD=filename open option
     620 * add FORCE_SRS_DETECTION, INVERT_AXIS_ORDER_IF_LAT_LONG, CONSIDER_EPSG_AS_URN, READ_MODE, EXPOSE_GML_ID, EXPOSE_FID, DOWNLOAD_SCHEMA and REGISTRY open options
     621 * fix bug that prevented multiple instanciation of the reader with Xerces backend (#5571)
     622 * parse correctly GML geometries whose srsDimension attribue is on top-level geometry element and not on posList (#5606)
     623 * add datasource option SRSDIMENSION_LOC=GEOMETRY to be able to write srsDimension attribute on top level geometry element, default on posList unchanged (#5066)
     624 * add support for reading layers resulting from a WFS 2.0 join query
     625 * read/write top <gml:description> and <gml:name> as DESCRIPTION and NAME metadata items. Also add GML_ID, DESCRIPTION and NAME creation options
     626 * support to reader response to CSW GetRecords queries
     627 * Fix incorrect geometry cast when reading GML topogeometries (#5715)
     628 * VFR: fix ST_Z type (changes) -- list all layers
     629 * VFR: include also non-spatial (removed) features (ZaniklePrvky) in type ST_Z (changes)
     630 * VFR: use String when 32-bit integer wasn't wide enough
     631 * VFR: add support for UVOH file type
     632 * VFR: add missing support for OriginalniHraniceOmpv geometry
     633 * VFR: update GFS files to RFC31 (OGR 64bit Integer Fields and FIDs)
     634 * update RUIAN GFS files: add missing GMLFeatureClasses to OB type (SpravniObvody, Mop, Momc)
     635 * add support for parsing .xsd with a <choice> of polygonProperty and multiPolygonProperty
     636 * remove wrong case insensitive comparison related to gml_registry.xml use
     637 * various fixes to better deal with ArcByCenterPoint() as found in FAA AIXML files
     638 * make Expat parser accept trailing nul characters
     639 * correctly record path to attribute in case of attribute located on a nested element when .gfs is created with GML_ATTRIBUTES_TO_OGR_FIELDS=YES
     640 * fix GML_ATTRIBUTES_TO_OGR_FIELDS=YES to work correctly with xlink:href too (#5970
     641 * make GML_EXPOSE_GML_ID to be honoured on WFS documents
     642
     643GPKG driver:
     644 * add support for non-spatial layers via the gdal_aspatial extension (#5521)
     645 * add support for creating spatial index
     646 * add layer metadata read/write support
     647 * implement ST_GeometryType(), GPKG_IsAsisgnable() and ST_SRID() to be compatible with Geometry Type Triggers and SRS ID Triggers Extensions
     648 * on creation, use GEOMCOLLECTION (instead of GEOMETRYCOLLECTION) (#5937)
     649 * make SELECT expressions passed to ExecuteSQL() be evaluated by SQLite
     650 * make it possible to use spatialite 4.2.0 SQL functions
     651 * add a 'INDIRECT_SQLITE' dialect that goes through the VirtualOGR mechanism (e.g. for compat with older Spatialite)
     652 * allow table names with dash character (#5472)
     653 * emit warning when required extensions are not implemented
     654 * disable PRAGRAM integrity_check by default, since it can be expensive on big files
     655 * read-only support for tables without integer primary key
     656 * fix Date and DateTime support
     657 * implement TEXT(maxwidth) type in read and creation
     658 * implement deferred table creation
     659 * fix reporting of geometry type for 2.5D (previous behaviour had the effect to turn to wkbUnknown)
     660 * put correct value (1) in gpkg_geometry_columns for 2.5D tables (#5481)
     661 * fix component geometry type of 3D MultiGeometries (#5629)
     662 * fix GetExtent() crash on layers without extent set in gpkg_contents (#5471)
     663 * avoid leak when a table has more than one FID column
     664 * accept spatial tables whose geometry field is declared as BLOB
     665 * recognize both GeomCollection and GeometryCollection as possible values, until GeoPackage SWG clears what is the official value
     666 * escape all column names in SQL (#5520)
     667 * accept geometries with Spatialite format, that can be returned with issuing a SQL request using spatialite functions
     668 * enable Spatialite 4.3 'amphibious' mode to avoid explicit cast to Spatialite geometries
     669
     670GPSBabel driver:
     671 * automatically open .igc files, implement Identify() and add open options
     672 * advertize creation option
     673
     674GTM driver:
     675 * declare OLCCreateField and OLCSequentialWrite capabilities
     676
     677IDRISI driver:
     678 * fix support for multi-ring polygons (#5544)
     679
     680ILI driver:
     681 * Use Ili1TransferElement written by ili2c 4.5.5 and newer
     682 * Fix crash in polygon geometry reading
     683 * Fix reading SURFACE polygons with multiple rings
     684 * Fix reading tables with polygon type
     685 * Support curve geometries for ILI1 and ILI2.
     686 * Add a MODEL open option
     687
     688ISIS3 driver:
     689 * fix to recognize IsisCube.Mapping.LatitudeType = Planetocentric (#5717)
     690
     691KML driver:
     692 * fix segfault when calling GetNextFeature() on a write-only layer
     693
     694LIBKML driver:
     695 * add support for reading gx:MultiTrack
     696 * rework libkml singleton factory management (#5775)
     697
     698MITAB driver:
     699 * add support for append/update/delete operations on .tab files (#5652)
     700 * add support for CreateField() on non empty file, AlterFieldDefn() and DeleteField() for .TAB (#5652)
     701 * implement SyncToDisk() for TAB layers (#5652)
     702 * convert to use of VSI*L FILE API (#5558)
     703 * don't write field width for integer fields in .mif, which is incompatible with MapInfo (#3853)
     704 * report OLCCreateField for .mif files (#5477)
     705 * fix opening .mif file without .mid file (#5570)
     706 * swap StdParallel1 and stdParallel2 if necessary on LCC projections (https://github.com/mapgears/mitab/issues/1)
     707 * take into account scale/bounds to properly round coordinates (https://github.com/mapgears/mitab/issues/2)
     708 * add MITAB_BOUNDS_FILE configuration option to specify a file with projection bounds (https://github.com/mapgears/mitab/issues/3)
     709 * add BOUNDS layer creation option (#5642)
     710 * refactor import/export of MIF coordsys to use the TAB code; take into account MITAB_BOUNDS_FILE to add Bounds to the CoordSys string
     711 * close polygon rings when reading Region from MIF file (#5614)
     712 * fix segfault in CreateFeature() if passing an invalid OGR feature style string (#1209)
     713
     714MSSQLSpatial driver:
     715 * Implement SPATIAL_INDEX layer creation option for MSSQL (#5563)
     716 * Implement support for WKB geometry upload (#5682)
     717 * Fix schema handling in MSSQL driver (#5401)
     718 * Fix spatial geometry field handling (#5474)
     719 * Bind string fields to unicode string columns in the database (#5239)
     720 * Fix recognizing image columns as geometry columns for the select layers. (#5498)
     721 * Fix issue when creating non-spatial table (#5696)
     722 * Fix to read metadata if the tables are specified in the connection string (#5796)
     723 * Fix crash if the tablename is specified in the connection string (#5826)
     724 * Include geometry column name in Update statement (#5930)
     725 * Implement FID layer creation option (#5816)
     726 * Fix issue when removing an MSSQL spatial layer
     727
     728MySQL:
     729 * thread-safe initialization of mysql client library (#5528)
     730
     731NAS driver:
     732 * implement wfs:update (adds new context 'update' and fields "endet" and "anlass" to "delete" layer).
     733 * also assign xlink:href attributes as layer attribute (not only in "alkis_beziehungen" layer; #5372)
     734 * fix filtering on OGR_GEOMETRY special field
     735 * make chevrons configurable by NAS_INDICATOR
     736
     737OCI driver:
     738 * add a ADD_LAYER_GTYPE=YES/NO layer creation option that defaults to YES to enforce a layer geometry type and is used to retrieve the layer geometry type when listing layers (#3754)
     739 * Fix FID (multi_load=off, OGRNullFID) - start with 1 (not -1) (#5454)
     740 * use VARCHAR2 instead of VARCHAR for unsupported types
     741 * Fix "ORA-00972: identifier is too long" error (#5466)
     742 * Fix memory leaks (#5599)
     743 * Fix creation of date and datetime fields (#5600)
     744 * initialize member variable to avoid UpdateLayerExtents() to be called randomly on non spatial tables (#5376)
     745 * avoid spatial index to be created each time SyncToDisk() is called
     746 * fix memory leak in DeleteLayer(const char*)
     747 * fix reading of 2D geometries that were always turned as 3D
     748 * in layers returned by ExecuteSQL(), only expose geometry column if there's one
     749 * force NLS_NUMERIC_CHARACTERS to ". " (#5709)
     750
     751ODBC driver:
     752 * try alternate DSN template for 64bit ODBC
     753 * make ODBC driver honour PGEO_DRIVER_TEMPLATE config. option (and also MDB_DRIVER_TEMPLATE in case PGEO_DRIVER_TEMPLATE isn't defined) (#5594)
     754
     755ODS driver:
     756 * fix export of OFTDate fields that were exported as string
     757
     758OpenAir driver:
     759 * tweak detection logic to read beyond first 10KB bytes when needed (#5975)
     760
     761OpenFileGDB driver:
     762 * add compatibility with .gdbtable files bigger than 4 GB (#5615)
     763 * support opening files with ConfigurationKeyword=MAX_FILE_SIZE_4GB or MAX_FILE_SIZE_256TB (#5615)
     764 * fix occasionnal write-after-end-of-buffer (#5464)
     765 * avoid error message when failing to import SRS from WKID code (might be an ESRI code for example)
     766 * fix spatial filter with GeneralPolygon shapes (#5591)
     767 * fix for reading GDB with string fields with a default value length > 127 (#5636)
     768 * better handling of certain definitions of raster columns
     769 * use LatestWKID when available (#5638)
     770 * increase accepted size for field description zone up to 10 MB (#5660)
     771 * fix ResetReading() on SQL layer with ORDER BY on indexed column (#5669)
     772 * add support for non spatial GDB v9 tables (#5673)
     773 * improve error reporting when file exists but cannot be opened due to permission problem (#5838)
     774 * report width of string fields (#5806)
     775 * try to deal more gracefully with inconsistent nValidRecordCount vs nTotalRecordCount values (#5842)
     776 * report 25D layer geometry type on FileGDB v9 tables when relevant
     777 * optimize sequential reading of sparse layers
     778 * avoid warning when opening a00000004.gdbtable
     779 * disable feature count optimization with IS NOT NULL on an index column
     780
     781OSM driver:
     782 * add mechanism to compute fields from other fields/tags with SQL expressions. Apply it for z_order on lines layer
     783 * fix random crash, particularly on MacOSX (#5465)
     784 * add CONFIG_FILE, USE_CUSTOM_INDEXING, COMPRESS_NODES, MAX_TMPFILE_SIZE and INTERLEAVED_READING open options
     785
     786PG driver:
     787 * use COPY mode by default (unless PG_USE_COPY is set to NO) when inserting features in a newly create table (#5460)
     788 * add UNLOGGED=YES/NO layer creation option to create unlogged tables (improved version of patch by Javier Santana, #4708)
     789 * implement deferred loading of table list, to optimize ExecuteSQL() (#5450)
     790 * implement optimization for spatial table listing for PostGIS 2.x
     791 * implement deferred creation of tables to capture all attribute and geometry column creations into a single CREATE TABLE statement (#5547)
     792 * change "No field definitions found" from fatal error to debug
     793 * when creating a table and filling it, avoid re-reading the table definition from PG system tables (#5495)
     794 * better handling of SRS authority name different than EPSG (authority code must still be integral)
     795 * fix crash when writing a StringList with 0 element (#5655)
     796 * emit errors instead of debug messages when postgres issues an error (#5679)
     797 * fix to make ExecuteSQL('CREATE DATABASE foo') work
     798 * fix regression that prevented to retrieve more than 500 features from a connection with tables= parameter and on a SQL result layer (#5837)
     799 * PG/PGDump: fix truncation of fields to work with multi-byte UTF-8 characters (#5854)
     800
     801PGDump driver:
     802 * switch to DROP_TABLE=IF_EXISTS by default (#5627)
     803 * fix crash when writing a StringList with 0 element (#5655)
     804
     805PGeo driver:
     806 * try alternate DSN template for 64bit ODBC
     807
     808REC driver:
     809
     810Shapefile driver:
     811 * add SPATIAL_INDEX layer creation option (#5562)
     812 * support .prj files with UTF-8 BOM
     813 * fill 'date of last update' header with current time instead of dummy date, and add a DBF_DATE_LAST_UPDATE layer creation option to override this with a fixed date (#3919)
     814 * fix reading of shapefiles whose .shx is non conformant (#5608)
     815 * fix writing values up to 2^53 in OFTReal fields with 0 decimal places (#5625)
     816 * delete implicit FID field as soon as we CreateField a real one
     817 * GetExtent(): don't trust extent in header if it contains Not-A-Number values (#5702)
     818 * make REPACK compact .shp if SetFeature() is called and changes one geometry size (#5706)
     819 * add check not to cut unicode character while cut the string lengnt for field max length during SetFeature
     820 * avoid reading whole .shx at open time for /vsicurl/
     821 * add SHAPE_REWIND_ON_WRITE configuration option that can be set to NO to disable correction of ring winding order on write. Usefull when dealing with MultiPolygon that are MultiPatch objects in fact (#5888)
     822 * Make ENCODING layer creation option prioritary over SHAPE_ENCODING config. option
     823
     824SOSI driver:
     825 * remove error noise (#5710)
     826
     827S57 driver:
     828 * various compliance fixes in ISO8211 and S57 writer (#5798)
     829 * make it possible to set LNAM_REFS=OFF as advertized in the doc
     830
     831SQLite/Spatialite driver:
     832 * SQLite/Spatialte: add support for multiple geometry colunn tables, accordingly with RFC 41 (#5494)
     833 * SQLite SQL dialect: Add hstore_get_value(hstore, key) function
     834 * remove 'T' suffix when formatting the content of a Date field (#5672)
     835 * optimize CreateFeature() when fields can be null or not null from one feature to another one
     836 * Spatialite: improve insertion performance by disabling triggers and doing the job ourselves
     837 * Fix segmentation fault when executing OGR2SQLITE_Register() when compiling against sqlite 3.8.7 (#5725)
     838 * make GetFIDColumn() work when run as first method call (#5781)
     839 * emit warning when reading text values in a integer/real field (possible since SQLite has no strong typing)
     840 * support reading date/datetime from Julian day floating point representation
     841
     842SUA driver:
     843 * tweak detection logic to read beyond first 10KB bytes when needed (#5975)
     844
     845SXF driver:
     846 * Fix SXF file version check (#5456)
     847 * Fix wrong Miller Cylindrical projection string
     848 * Fix encoding issues (#5647)
     849 * Fix extract z value to OGRGeometry
     850 * Fix case sensitivity of RSC file
     851
     852VFK driver:
     853 * recode also header values
     854 * process DKATUZE from header properly
     855 * handle also duplicated records
     856 * check attribute 'parametry_spojeni'
     857 * speed-up GetFeatureCount()
     858 * fix reading properties. Escape characters for SQL
     859 * change SRS from EPSG 2065 to 5514
     860 * fix reading SBP datablock (fix mismatch when reading from file and db)
     861
     862VRT driver:
     863 * do not propagate ignoring of x and y cols of a PointFromColumns to the source layer (#5777)
     864 * add an optional 'name' attribute on FID element, so as to be able to force the report of a FID column name even if it is not exposed as a regular field (related to #5845)
     865 * handle optional <OpenOptions><OOI key='key'>value</OOI></OpenOptions> to specify open options
     866
     867Tiger driver:
     868 * Fix potential buffer underflow when providing /vsistdin/ to Tiger driver (#5567)
     869
     870WAsP driver:
     871 * added options and changed output precision to match WAsP Map Editor
     872 * improve TestCapability(ODsCCreateLayer)
     873
     874WFS driver:
     875 * automatically enable paging if WFS 2.0 capabilities report paging support
     876 * evaluate SELECT with JOIN on server-side for a Join-capable WFS 2.0 server
     877 * add a TRUST_CAPABILITIES_BOUNDS open option, that can be set to YES to trust layer bounds declared in GetCapabilities response, for faster GetExtent() runtime (#4041)
     878 * add INVERT_AXIS_ORDER_IF_LAT_LONG, CONSIDER_EPSG_AS_URN and EXPOSE_GML_ID open options
     879 * add capability to use spatial functions ST_xxxxx() as server-side filters
     880 * add dataset and layer metadata
     881 * allow SELECT with several ORDER BY columns
     882 * report name of geometry column
     883 * Add COOKIE option (#5824)
     884 * when parsing a layer schema without geometry from the GML .xsd, do not expose a geometry field at the WFS layer level (#5834)
     885
     886XLSX driver:
     887 * fix column numbering when there are more than 26 columns (#5774)
     888
     889XPlane driver:
     890 * add support for Taxi Location 1300 record found in V1000
     891
     892== SWIG Language Bindings ==
     893
     894All bindings:
     895 * bind GDALGetBandDataset() as Band.GetDataset()
     896 * add Feature.GetFieldAsBinary()
     897
     898Java bindings:
     899 * Pass eRWFlag to allow both reading or writing.  Write was broken in DatasetRasterIO().
     900 * updates to generate maven artifacts
     901
     902Perl bindings:
     903 * The breaking changes are described in more detail in swig/perl/Changes-in-the-API-in-2.0.
     904 * More comprehensive use of strings as constants (such as capabilities); they are also taken from bindings, which added new ones, and not hard-coded.
     905 * New classes (e.g., VSIF, GeoTransform, GeomFieldDefn) and new methods (e.g., constant lists, Dataset::SpatialReference).
     906 * Much improved documentation and switch to Doxygen::Filter::Perl.
     907 * New test codes.
     908 * Errors are confessed with stack trace and often caught earlier with better messages.
     909 * Use of attributes is deprecated and methods have been added to replace them.
     910 * Multiple geometry fields have necessitated some changes in schema and field related methods.
     911 * More support for named parameters (i.e., hashes as arguments).
     912 * NoDataValue: set max float if undef is given.
     913 * Unit: set '' if undef is given.
     914 * Also other changes that will also remove some "use of uninitialized value in subroutine entry" warnings.
     915 * Automatic handling of SQL result layers.
     916 * Fix issue with index attribute for field meta data (schema) (#5662)
     917 * Warn if attempt to create non-integer column for colors.
     918 * Remove prefix GCP from GCP swig made attributes.
     919
     920Python bindings:
     921 * add optional buf_xsize, buf_ysize and buf_type parameters to Dataset.ReadAsArray() and Dataset.LoadFile(), and use dataset RasterIO for better efficiency
     922 * avoid generating Python exception when PyString_FromStringAndSize() fails and GDAL errors as Python exceptions are disabled
     923 * Band.ReadRaster() and Dataset.ReadRaster(): clear the buffer in case there are holes in it due to odd spacings specified by the user
     924 * Fix hang of Python in case of repeated call to gdal/ogr.UseExceptions() and CE_Warning emitted (#5704)
     925 * for Python 2, accept unicode string as argument of Feature.SetField(idx_or_name, value) (#4608)
     926 * for Python 2, accept Unicode strings to be passed as key and/or value of the dictionary passed to SetMetadata() (#5833)
     927 * fix processing error of ogr_python.i with SWIG 3 (#5795)
     928 * NUMPY driver: avoid returning CE_None in GetGeoTransform() when there's no geotransform set (#5801)
     929 * Make GetFieldAsBinary() work with OFTString fields
     930 * For Python3 compat, make Feature.GetField() use GetFieldAsBinary() if GetFieldAsString() fails (#5811)