| 1 | = GDAL/OGR 2.1.0 Release Notes = |
| 2 | |
| 3 | == In a nutshell... == |
| 4 | |
| 5 | * New GDAL/raster drivers: |
| 6 | - [http://gdal.org/frmt_cals.html CALS]: read/write driver for CALS Type I rasters |
| 7 | - [http://gdal.org/drv_db2_raster.html DB2]: read/write support for DB2 database (Windows only) |
| 8 | - [http://gdal.org/frmt_various.html#ISCE ISCE]: read/write driver (#5991) |
| 9 | - [http://gdal.org/frmt_marfa.html MRF]: read/write driver for Meta Raster Format (#6342) |
| 10 | - [http://gdal.org/frmt_safe.html SAFE]: read driver for ESA SENTINEL-1 SAR products (#6054) |
| 11 | - [http://gdal.org/frmt_sentinel2.html SENTINEL2]: read driver for ESA SENTINEL-2 L1B/LC1/L2A products |
| 12 | - [http://gdal.org/frmt_wmts.html WMTS]: read driver for OGC WMTS services |
| 13 | * New OGR/vector drivers: |
| 14 | - [http://gdal.org/drv_amigocloud.html AmigoCloud]: read/write support for AmigoCloud mapping platform |
| 15 | - [http://gdal.org/drv_db2.html DB2]: read/write support for DB2 database (Windows only) |
| 16 | - [http://gdal.org/drv_mongodb.html MongoDB]: read/write driver |
| 17 | - [http://gdal.org/frmt_netcdf_vector.html netCDF]: read/write driver |
| 18 | - [http://gdal.org/drv_vdv.html VDV]: read/write VDV-451/VDV-452 driver, with specialization for the Austrian official open government street graph format |
| 19 | * Significantly improved drivers: |
| 20 | - [http://gdal.org/drv_csv.html CSV]: new options, editing capabilities of existing file |
| 21 | - [http://gdal.org/drv_elasticsearch.html ElasticSearch]: read support and support writing any geometry type |
| 22 | - [http://gdal.org/drv_geojson.html GeoJSON]: editing capabilities of existing file, "native data" (RFC 60) support |
| 23 | - [http://gdal.org/frmt_mbtiles.html MBTiles]: add raster write support. fixes in open support |
| 24 | - [http://gdal.org/frmt_pdf.html PDF]: add PDFium library as a possible back-end. |
| 25 | - [http://gdal.org/drv_plscenes.html PLScenes]: add support for V1 API |
| 26 | - [http://gdal.org/gdal_vrttut.html VRT]: on-the-fly pan-sharpening |
| 27 | - [http://gdal.org/frmt_gtiff.html GTiff]: multi-threaded compression for some compression methods |
| 28 | * Port library: add [http://www.gdal.org/cpl__vsi_8h.html#a5b4754999acd06444bfda172ff2aaa16 /vsis3/], [http://www.gdal.org/cpl__vsi_8h.html#a126c1e0314bbd7e4661bc526f45032c5 /vsis3_streaming/], [/vsicrypt/ http://www.gdal.org/cpl__vsi_8h.html#a5e20b79947f58970f5514b3eb9a524a9] virtual file systems |
| 29 | * RFC 26: Add hash-set band block cache implementation for very larger rasters (WMS, WMTS, ...) |
| 30 | http://trac.osgeo.org/gdal/wiki/rfc26_blockcache |
| 31 | * RFC 48: Geographical networks support (GNM) |
| 32 | https://trac.osgeo.org/gdal/wiki/rfc48_geographical_networks_support |
| 33 | * RFC 58: Add DeleteNoDataValue(): |
| 34 | https://trac.osgeo.org/gdal/wiki/rfc58_removing_dataset_nodata_value |
| 35 | * RFC 59.1: Make GDAL/OGR utilities available as library functions: |
| 36 | https://trac.osgeo.org/gdal/wiki/rfc59.1_utilities_as_a_library |
| 37 | For gdalinfo, gdal_translate, gdalwarp, ogr2ogr, gdaldem, nearblack, gdalgrid, |
| 38 | gdal_rasterize, gdalbuildvrt |
| 39 | Available in C, Python, Perl and Java bindings. |
| 40 | * RFC 60: Improved round-tripping in OGR |
| 41 | https://trac.osgeo.org/gdal/wiki/rfc60_improved_roundtripping_in_ogr |
| 42 | Implemented in GeoJSON driver |
| 43 | * RFC 61: Support for measured geometries. |
| 44 | https://trac.osgeo.org/gdal/wiki/rfc61_support_for_measured_geometries |
| 45 | Implemented in Shapefile, PostgreSQL/PostGIS, PGDump, MEM, SQLite, GeoPackage, |
| 46 | FileGDB, OpenFileGDB, CSV, VRT |
| 47 | * Upgrade to EPSG database v8.8 |
| 48 | * General sanitization pass to clean-up code, fix a lot of compiler warnings, |
| 49 | as well as issues pointed by static code analyzers, such as Coverity Scan |
| 50 | (credits to Kurt Schwehr for tackling a large part of them) or CLang Static Analyzer. |
| 51 | * Fixes in a number of drivers to be more robust against corrupted files (most found |
| 52 | with American Fuzzy Lop): RIK, INGR, Northwood, HF2, CEOS, GTiff, GXF, BMP, |
| 53 | NITF, HFA, VRT, FIT, CEOS2, NWT_GRD/NWT_GRC, MITAB, RPFTOC, DBF/Shape, XYZ, VFK, DXF, |
| 54 | NAS, GSAG, GS7BG, OpenFileGDB, RMF, AIGRID, OpenAIR, EHDR, ISO8211, FAST, |
| 55 | USGSDEM, DGN, SGI, OpenJPEG, PCRaster, BSB, ADRG, SRP, JPEG, Leveller, VICAR, PCIDSK, XPM |
| 56 | as well as in portability library (CPL), algorithms and raster core. |
| 57 | * Driver removed: |
| 58 | - Google Maps Engine (GME) (#6261) |
| 59 | |
| 60 | == New installed files == |
| 61 | * gdal_pansharpen.py |
| 62 | * data/vdv452.xml |
| 63 | * data/vdv452.xsd |
| 64 | * data/netcdf_config.xsd |
| 65 | * /path/where/bash-completion/scripts/are/installed/gdal-bash-completion.sh |
| 66 | |
| 67 | == Backward compatibility issues == |
| 68 | |
| 69 | See MIGRATION_GUIDE.TXT |
| 70 | |
| 71 | == GDAL/OGR 2.1.0 - General Changes == |
| 72 | |
| 73 | Build(Unix): |
| 74 | * Allow plugin for HDF4, HDF5, GeoRaster, FileGDB, OCI and PG |
| 75 | * Add a --with-gnm option to enable GNM |
| 76 | * Add --enable-lto switch to turn on link time optimization (GCC >= 5) |
| 77 | * Add --with-spatialite=dlopen --with-spatialite-soname=libspatialite.so[.X] syntax to allow linking against spatialite through dlopen() mechanism (#6386) |
| 78 | * Add a lot of warning options when available in the compiler. |
| 79 | * Change detection test of podofo to work with podofo 0.9.3 |
| 80 | * Fix gdalserver compilation with recent GNU libc (such as in Arch Linux) (#6073) |
| 81 | * Add pkg-config support for libkml fork (#6077) |
| 82 | * Update config.sub and config.guess to their latest upstream versions so as to be able to detect new architectures (android, ppcle64, etc..) (#6101) |
| 83 | * Fix python package installation in custom prefixes (#4563) |
| 84 | * configure: check that CXX is really a working compiler (#4436) |
| 85 | * Build support for Kakadu 7.7 |
| 86 | * thinplatespline.cpp: avoid using optimized version of VizGeorefSpline2DBase_func4() with ICC versions that fail on it (#6350) |
| 87 | * Add bash completion for GDAL/OGR utilities and scripts (#6381) |
| 88 | * Add support for ODBC autodetection with mingw64 (#6000) |
| 89 | * Remove macos 9 and older support (#6133). |
| 90 | * Remove dist_docs, burnpath and pszUpdableINST_DATA in gcore/gdaldrivermanager.cpp as they are have not been used for a while (#6140). |
| 91 | * Removed --without-ogr configure flag (#6117). Always build with OGR. |
| 92 | |
| 93 | Build(Windows): |
| 94 | * Add support for Visual Studio 2015 (a.k.a MSVC_VER=1900 or VC 13) |
| 95 | * Add KAKFLAGS to nmake.opt with KDU_{MAJOR,MINOR,PATCH}_VERSION define-s. |
| 96 | * nmake.opt: make it less error prone to define SETARGV when paths include spaces (#6032) |
| 97 | * nmake.opt: add CL.EXE compiler option /FC to display full path of source code file in diagnostics |
| 98 | * Remove WinCE support (#6133) |
| 99 | * nmake.opt: add /I flag to the INSTALL command so that xcopy will be smart enough to create a directory when copying files and avoid prompting for user input (https://github.com/OSGeo/gdal/pull/95) |
| 100 | * Enable mssql spatial blugin build, use BCP as the default option for the sqlncli enabled builds |
| 101 | * Add support to find MrSID 9.5 dll |
| 102 | * Fix Windows build with recent MySQL versions and Visual Studio 2015 (#6457) |
| 103 | |
| 104 | Build(all): |
| 105 | * Compatibility with C++11 and C++14 |
| 106 | * Optional crypto++ dependency for /vsicrypt/ support |
| 107 | * Optional mongocxx dependency for MongoDB support |
| 108 | |
| 109 | Other: |
| 110 | * Disable copy constructor and assignment operators in classes OGRFieldDefn, OGRGeomFieldDefn, OGRFeature, GDALMultiDomainMetadata, GDALDefaultOverviews, GDALOpenInfoGDALDataset, GDALRasterBlock, GDALRasterBand and GDALDriver (#6100) |
| 111 | |
| 112 | == GDAL 2.1.0 - Overview of Changes == |
| 113 | |
| 114 | Port: |
| 115 | * Add /vsicrypt/ virtual file system for reading/creating/update encrypted files on the fly, with random access capabilities |
| 116 | * Add /vsis3/ and /vsis3_streaming/ virtual file systems to read/write objects from AWS S3 buckets |
| 117 | * /vsizip/: avoid returning the previous file list of an already opened .zip if it has changed afterwards (#6005) |
| 118 | * /vsizip/: use CP437 on Windows when ICONV support is available (#6410) |
| 119 | * /vsimem/: implement append mode (#6049) |
| 120 | * /vsistdin/: fix caching of first 1MB / VRT driver: read XML content from /vsistdin/ in a streaming compatible way (#6061) |
| 121 | * /vsistdout/: flush when closing the handle (#6149) |
| 122 | * Add VSIReadDirEx() with a limit on the number of files before giving up and corresponding VSIFilesystemHandler::ReadDirEx() virtual function |
| 123 | * cpl_vsil_cache: rework to be able to work on very large files on 32bit systems |
| 124 | * Add CPLThreadLocaleC class to use thread-specific locale settings (when available) |
| 125 | * VSIWin32Handle::Flush(): add VSI_FLUSH config option that can be set to TRUE to force FlushFileBuffers(). (hack related to #5556) |
| 126 | * Fix VSIL append mode in Windows (#6065) |
| 127 | * Make CPLCreateMutexEx() support CPL_MUTEX_REGULAR; and fix CPL_MUTEX_ADAPTIVE to avoid continuing in code path for creation of recursive mutex |
| 128 | * Add CPLWorkerThreadPool API |
| 129 | * Add CPLGetThreadLocalConfigOption() |
| 130 | * Fix CPL_LSBINT16PTR() and CPL_LSBINT32PTR() to work with non-byte pointer (#6090) |
| 131 | * CPLRecodeStub(): add special case for CP437 -> UTF-8 when input is only printable ASCII |
| 132 | * CPLHTTPFetch(): add LOW_SPEED_TIME and LOW_SPEED_LIMIT options |
| 133 | * CPLGetValueType(): improve heuristics to avoid detecting some WKB strings as real numbers (#6128) |
| 134 | * Add CPL_SHA256* and CPL_HMAC_SHA256 functions |
| 135 | * Make CPLVirtualMemFileMapNew() work on all systems having mmap(), and thus GeoTIFF GTIFF_VIRTUAL_MEM_IO optimization too |
| 136 | * Add VSI_MALLOC_VERBOSE() and similar macros to output an error message in case of failed alloc |
| 137 | * CPLParseXMLString(): limit depth of elements to 10000 |
| 138 | * Win32 file management: handle files whose total file path length is greater than 255 characters in Open() and Stat() |
| 139 | * Make CPLFormFilename(absolute_path, "..", NULL) truncate when possible |
| 140 | * Add VSIGetDiskFreeSpace() |
| 141 | * Implement CPLIsInf() for Solaris 11 |
| 142 | * Add a CPL_FINAL macro that expands to C++11 final keyword when C++11 is enabled, and use it in a few places |
| 143 | * Avoid CPLEscapeString (CPLES_URL) encoding some characters unnecessarily (#5526) |
| 144 | * Add CPLTestBool(), CPLTestBoolean(), CPLFetchBool() |
| 145 | * Fix CPLGetValueType() to recognize D1 as a string and not a real number (#6305) |
| 146 | * CPLFormFilename(): use '/' directory separator on Windows on /vsicurl_streaming/ files (#6310) |
| 147 | * Add hack enabled by -DDEBUG_BOOL to detect implicit int->bool conversions that dislike MSVC (#6325) |
| 148 | * Add hack to '#define NULL nullptr' when NULL_AS_NULLPTR is defined. Must be used together with -std=c++11 -Wzero-as-null-pointer-constant with GCC to detect misuses of NULL/nullptr (#6327) |
| 149 | * Add VSIError mechanism to store errors related to filesystem calls, and use it for /vsis3/. Add new CPLE_ error numbers. (https://github.com/OSGeo/gdal/pull/98) |
| 150 | * Fix CPLsscanf() to be conformant regarding how space/tab/... separators are handled, so as to fix OGR GMT to be able to read coordinates separated by tabulations (#6453) |
| 151 | |
| 152 | Core: |
| 153 | * Change default value of GDAL_CACHEMAX to 5% of usable physical RAM |
| 154 | * Allow open options name to be prefixed by @ to be silently ignored when not existing in driver options (RFC 60) |
| 155 | * Honour NBITS metadata item when doing RasterIO() with non-nearest resampling (#6024) |
| 156 | * GDALClientServer: pass open options to INSTR_Open call |
| 157 | * Improve performance of GDALCopyWords() float->byte/int16/uint16 by using SSE2 |
| 158 | * Decorate prototypes of RasterIO() related operations with CPL_WARN_UNUSED_RESULT |
| 159 | * Avoid deadlock when writing 2 datasets in 2 threads (#6163) |
| 160 | * Remove obsolete symbols __pure_virtual(), GDALCreateProjDef(), GDALReprojectToLongLat(), GDALReprojectFromLongLat() and GDALDestroyProjDef() |
| 161 | * Remove obsolete non-template-based implementation of GDALCopyWords(). We don't support anymore such compilers |
| 162 | * GDALJP2Box::ReadBoxData(): do not abort if memory allocation fails |
| 163 | * Add GDALAdjustValueToDataType() in C API, and use it in GDALTranslate() and GDALWarp() |
| 164 | * GDALDefaultOverviews::CreateMaskBand(): fix logic error related to writing per-band mask |
| 165 | * Block cache: fix excessive memory consumption when dealing with datasets with different block sizes (#6226) |
| 166 | * EXIFExtractMetadata(): fix potential 1-byte write buffer stack overflow |
| 167 | * MDReader: do no attempt reading side-car files on /vsisubfile/ (#6241) |
| 168 | * GDALCheckBandCount(): allow by default a maximum number of bands to 65536 |
| 169 | * GDALOpenInfo: add StealSiblingFiles() and AreSiblingFilesLoaded() methods |
| 170 | * GDALOpenInfo::GetSiblingFiles(): give up after GDAL_READDIR_LIMIT_ON_OPEN (default=1000) files in the directory |
| 171 | * GDALDefaultOverviews: add TransferSiblingFiles() method |
| 172 | * GDALDriver::DefaultCreateCopy(): fix logic related to propagation of NBITS / PIXELTYPE metadata items as creation options |
| 173 | * Reorder driver registration a bit so that formats with efficient identification are probed first |
| 174 | * Add GDALIdentifyEnum (GDAL_IDENTIFY_UNKNOWN, GDAL_IDENTIFY_FALSE or GDAL_IDENTIFY_TRUE) for return values of Identify() |
| 175 | * GDALLoadRPCFile(): load .rpc files from Ikonos products that have extra end-of-line character (#6341) |
| 176 | * Export GDALRegenerateOverviewsMultiBand() symbol, but mostly for plugins (#6342) |
| 177 | * Add GDAL_NO_AUTOLOAD to compile out the body of AutoLoadDriver (#6380) |
| 178 | * Avoid ComputeStatistics(), GetHistogram() and ComputeRasterMinMax() to use only the first column of blocks in approximation mode for a raster whose shape of blocks is a square (#6378) |
| 179 | * Add GDALGetDataTypeSizeBits() and GDALGetDataTypeSizeBytes(). |
| 180 | * GDALReadOziMapFile(): fix reading Ozi external files from virtual file systems (https://github.com/OSGeo/gdal/pull/114) |
| 181 | * Add CPLSetCurrentErrorHandlerCatchDebug() to enable custom error handlers not to intercept debug messages |
| 182 | |
| 183 | Algorithms: |
| 184 | * RPC transformer: provide SSE2 accelerated transformer |
| 185 | * RPC: fix off-by-half pixel computation of (pixel, line), and in bilinear and bicubic RPC DEM interpolation; fix off-by-one pixel registration for Pleiades RPC (#5993) |
| 186 | * RPC: make RPCInverseTransformPoint() check convergence has been reached (#6162) |
| 187 | * RPC DEM: optimize when DEM is in NAD83 or any other geodetic CS that transform as a no-op to WGS 84 |
| 188 | * RPC DEM: take into account vertical datum of the DEM when present to convert DEM elevations to ellipsoidal heights (#6084) |
| 189 | * RPC DEM: do fallback cubic -> bilinear and bilinear -> near on DEM edges |
| 190 | * RPC DEM: improve inverse transformer to validate error threshold and improve convergence (#6162, #6377) |
| 191 | * TPS solver: discard duplicated GCP to avoid avoidable error, warning when 2 GCPs have same (pixel,line) but different (X,Y) or the reverse |
| 192 | * Warper: rework multithreaded computations to use a thread pool rather than forking threads each time |
| 193 | * Warper: avoid really excessive processing time for some warping with target areas completely off the source raster (especially when involving RPC) (#6182) |
| 194 | * Warper: CreateKernelMask(): fix potential 32 bit integer overflow when using warp memory value > 2GB (#6448) |
| 195 | * gdal_grid: add linear interpolation algorithm |
| 196 | * gdal_grid: add invdistnn algorithm, variation on the existing inverse distance weighting algorithm with quadtree to search for points only in the neighborhood (#6038) |
| 197 | * gdal_grid: fix crash in optimized mode with GCC 4.4 on 64bit (#5987) |
| 198 | * gdal_grid: compile gdalgrid AVX optimization for Windows when supported by compiler |
| 199 | * Add GDALTriangulationXXXX() API through libqhull |
| 200 | * Sieve filter: fix crash on nodata polygons (#6096) |
| 201 | * Sieve filter: improvement to walk through the biggest neighbour chain until we find a polygon larger than the threshold (#6296) |
| 202 | * GDALFPolygonize(): factor implementation with integer case |
| 203 | * GDALComputeMedianCutPCT(): fix to make it work with rasters with more than 2 billion pixels (#6146) |
| 204 | * Overview: Make average and gauss methods aware of transparent color table entries (#6371) |
| 205 | |
| 206 | Utilities: |
| 207 | * gdalinfo: workaround bug in proj <= 4.9.1 on datasets with a SRS with a vertical shift grid (#6083) |
| 208 | * gdal_translate: detect more reliably if specified bands are not in default order |
| 209 | * gdal_translate: fix -a_nodata with negative values on rasters that have PIXELTYPE=SIGNEDBYTE; fix preserving PIXELTYPE=SIGNEDBYTE with VRT |
| 210 | * gdal_translate: fix random behaviour when -scale is used without source bounds (#6455) |
| 211 | * gdal_rasterize: do on-the-fly reprojection of input vector onto output raster |
| 212 | * gdal_rasterize: rasterize: always create output with 1/2 cell buffer of input geometry envelope (#6058) |
| 213 | * gdal_rasterize: add the -dialect option |
| 214 | * gdalwarp: add -doo option to specify open options of (existing) output dataset |
| 215 | * gdalwarp: if RPC_DEM warping option is specified, use exact transformer by default (#5993) |
| 216 | * gdalwarp: make it honour nodata value of existing dataset (if -dstNoData isn't explicitly specified) |
| 217 | * gdalwarp: do not propagate STATISTICS_ of second or following source datasets |
| 218 | * gdalwarp: do not emit warning when using -cutline with a SRS and the source raster has RPC or GEOLOCATION |
| 219 | * gdalwarp: check that the cutline is valid after transformation/reprojection |
| 220 | * gdalwarp: better deal when dealing with a mix of RGB and RGBA datasets as input |
| 221 | * gdalwarp: fix -srcnodata to not put garbage values as target dstnodata (#6315) |
| 222 | * gdalwarp: densify cutline to avoid invalid geometry after reprojection to source raster, especially in the RPC case (#6375) |
| 223 | * gdalserver: add a -nofork mode (Unix only for now), so that multiple clients can connect to the same dataset. Useful for safe 'concurrent' updates |
| 224 | * add gdal_pansharpen.py script |
| 225 | * gdal2tiles.py: fix error on a raster with less than 3 bands that resulted in a 'IndexError: list index out of range' |
| 226 | * gdal2tiles.py: Change EPSG:3785 / EPSG:900913 into EPSG:3857 (#5622) |
| 227 | * gdal2tiles.py: add Leaflet template (https://github.com/OSGeo/gdal/pull/71) |
| 228 | * gdal2tiles.py: add -q switch for quiet mode |
| 229 | * gdaldem: correctly deal with NaN as nodata value (#6066) |
| 230 | * gdaldem color-relief: deal with the case of repeated entries with the same value and the input raster has pixels that match that value exactly (#6422) |
| 231 | * gdaladdo: emit error message if passed an invalid dataset name (#6240) |
| 232 | * gdaladdo: do not silence warnings when opening in update mode, if the open is successful |
| 233 | * gdalbuildvrt: fix potential crash when using -b switch (#6095) |
| 234 | * gdalbuildvrt: accept nan as value for -srcnodata and -vrtnodata |
| 235 | * gdalbuildvrt: return non zero return code if the flush of the VRT to disk failed |
| 236 | * gdal_merge.py: takes again into account -n flag (#6067) |
| 237 | * gdalbuildvrt / gdal_translate / VRT: use floating point values for source and destination offsets and sizes (#6127) |
| 238 | * gdalmove.py: fix to run with GDAL 2.0 gdal.InvGeoTransform() signature |
| 239 | |
| 240 | Python samples: |
| 241 | * gdalpythonserver.py: update to protocol 3 |
| 242 | |
| 243 | AAIGRID: |
| 244 | * when writing with floating-point values, ensure at least one value has a decimal point to avoid issues with some readers (#6060) |
| 245 | |
| 246 | BMP driver: |
| 247 | * BMP: avoid too big color table allocation in case of wrong iClrUsed value |
| 248 | |
| 249 | BLX driver: |
| 250 | * converted to support VirtualIO |
| 251 | |
| 252 | ECRG driver: |
| 253 | * change subdataset definition to make sure that they only consist of frames of same scale (#6043) |
| 254 | * fix base34 decoding and Windows filename handling (#6271) |
| 255 | |
| 256 | ECW driver: |
| 257 | * use wide char Open API on Windows when GDAL_FILENAME_IS_UTF8=YES (https://github.com/OSGeo/gdal/pull/70) |
| 258 | |
| 259 | GeoRaster driver: |
| 260 | * fix deflate read error depending on endianness (#6252) |
| 261 | |
| 262 | GIF driver: |
| 263 | * libgif: partial resync with giflib master (but keep ABI of 4.1.6) |
| 264 | * fix crash when CreateCopy a source with one color in the color table |
| 265 | |
| 266 | GMT driver: |
| 267 | * validate raster dimensions on opening, and acquire mutex in dataset destructor |
| 268 | |
| 269 | GPKG driver: |
| 270 | * write support: fix various issues in update scenarios when interacting with the GDAL block cache that could result in lost/corrupted band data to be written in tiles (#6309) |
| 271 | * write support: fix potential use of freed sqlite temporary DB handle when generating overviews with partial tiles (#6335) |
| 272 | * write support: fix potential crash in scenarios when block cache is full (#6365) |
| 273 | * write support: fix inversion of row/column in one of the SQL request involved in partial tiles management (#6339) |
| 274 | * fix generation of files with 1-band paletted input dataset. Also improve the logic to retrieve color palette when forcing BAND_COUNT=1 on opening (#6450) |
| 275 | |
| 276 | GTiff driver: |
| 277 | * add NUM_THREADS creation and open options to enable multi-threaded compression |
| 278 | * fix GTiffDataset::IsBlockAvailable() wrong behaviour when compiling against internal libtiff, when a BigTIFF file has a TileByteCounts with LONG/4-byte counts and not LONG8 (#6001) |
| 279 | * Correctly take into account overridden linear units for a geotiff with a EPSG PCS code (#6210, #4954) |
| 280 | * make VirtualMemIO() work with non native endianness |
| 281 | * improve VirtualMemIO() performance in tiled Contig read to single band copy |
| 282 | * improve single band tiled VirtualMemIO reading |
| 283 | * improve DirectIO() to work on tiled uncompressed geotiff, for non-resampling and nearest resampling cases. Also improve performance of resampling cases on un-tiled files |
| 284 | * fix DirectIO() mode with complex types and inverted endianness (#6198) |
| 285 | * optimize writing of 12-bit values |
| 286 | * implement lazy loading of .aux.xml and .tfw/.wld |
| 287 | * Internal libtiff: update to CVS HEAD post libtiff 4.0.6 |
| 288 | * make SetColorInterpretation(GCI_AlphaBand) work on a 5 band or more GeoTIFF (#6102) |
| 289 | * automatically set PHOTOMETRIC=RGB if manually assigning color interpretation Red,Green,Blue to band 1,2,3 before directory crystallization (#6272) |
| 290 | * add GEOTIFF_KEYS_FLAVOR=ESRI_PE creation option to write EPSG:3857 in a ESRI compatible way (#5924) |
| 291 | * call XTIFFInitialize() in LibgeotiffOneTimeInit() as the former isn't thread-safe, so better call it from the later which is thread-safe (#6163) |
| 292 | * fix reading and writing angular units different from degree (namely arc-second, arc-minute, grad, gon and radian) (#6171) |
| 293 | * do not use VirtualMemIO optimization on compressed /vsimem/ files (#6195) |
| 294 | * correctly set GTRasterTypeGeoKey=RasterPixelIsPoint if AREA_OR_POINT=Point but there is no SRS set (#6225) |
| 295 | * improve a bit error detection when writing |
| 296 | * check free space before writing (only for big, non sparse, uncompressed) |
| 297 | * do not read large 'one row' JBIG compressed files with the scanline API (#6264) |
| 298 | * Fix SetMetadata() to properly clear existing PAM metadata (complement to #5807) |
| 299 | * prevent potential out of bounds read/write to TIFFTAG_EXTRASAMPLES (#6282) |
| 300 | * do not use first directory as potential mask, to avoid assertion in GTiffDataset::SetDirectory() (#6287) |
| 301 | * reject files with strips/tiles/scanlines bigger than 2 GB to avoid 32 bit integer overflow. |
| 302 | Also in case of files with Contig PlanarConfiguration do not make reading one block for band 2 OK when reading for band 1 issued an error (#6288) |
| 303 | * GTIFFWriteDirectory(): avoid memory leak of codec related memory (#2055) |
| 304 | * Make ALPHA=NO in CreateCopy() cancel alpha color interpretation even if present in source raster |
| 305 | * fix problem with implicit overviews of JPEG-compressed files (#6308) |
| 306 | * fix compilation problem with internal libtiff if DEFER_STRILE_LOAD isn't defined (which is not the default configuration) (https://github.com/OSGeo/gdal/pull/90) |
| 307 | * use more appropriate error message when 4GB threshold is reached with external overviews, and try to make doc of BIGTIFF=IF_NEEDED/IF_SAFER clearer (#6353) |
| 308 | |
| 309 | HDF4 driver: |
| 310 | * Skip quotation mark when parsing HDF-EOS metadata. |
| 311 | |
| 312 | HDF5 driver: |
| 313 | * add Komsat Mission ID to possible value for HDF5 SAR product (https://github.com/OSGeo/gdal/pull/103) |
| 314 | |
| 315 | HF2 driver: |
| 316 | * fix reading side of the driver to work on architectures where char is unsigned, like PPC or ARM (#6082) |
| 317 | |
| 318 | HFA driver: |
| 319 | * when reading projection, preserve EPSG code if AutoIdentifyEPSG() identified the SRS, even if a PE string is present (#6079) |
| 320 | * keep TOWGS84 even when using ESRI PE string (#6158) |
| 321 | * fix crashes on corrupted files (#6208, #6286) |
| 322 | |
| 323 | INGR driver: |
| 324 | * check that RLE decoding produced the expected number of bytes and error out otherwise; test that 'random' line seeking actually works |
| 325 | |
| 326 | JPEGLS driver: |
| 327 | * fix build error (#6430) |
| 328 | |
| 329 | JP2ECW driver: |
| 330 | * honour psExtraArg->eResampleAlg when upsampling (#6022) |
| 331 | |
| 332 | JP2KAK driver: |
| 333 | * honour psExtraArg->eResampleAlg when upsampling (#6022) |
| 334 | * try rounded dimensions to decide if the data is being requested exactly at a sub-resolution |
| 335 | * support v7.7 on Unix (additional changes potentially needed on Windows) |
| 336 | |
| 337 | JP2OpenJPEG driver: |
| 338 | * Safer multi-threaded use |
| 339 | |
| 340 | JPEG driver: |
| 341 | * add USE_INTERNAL_OVERVIEWS open option (default to TRUE as in recent versions, can be set to FALSE to hide internal overviews |
| 342 | |
| 343 | KMLSuperOverlay driver: |
| 344 | * fix 2.0 regression with some RasterIO() requests involving resampling (#6311) |
| 345 | * recognize datasets that have a intermediate <Folder> that forms a <Document><Folder><Region/><GroundOverlay/> structure (#6343) |
| 346 | |
| 347 | LCP driver: |
| 348 | * fix wrong use of endianness macros to fix behaviour on big-endian hots |
| 349 | |
| 350 | Leveller driver: |
| 351 | * update to v9 read support (#5632,) |
| 352 | |
| 353 | MBTiles driver: |
| 354 | * add raster write support |
| 355 | * fix so that datasets whose lowest min zoom level is 16 or above are recognized |
| 356 | * be robust to invalid 'bounds' at dataset opening (#6458) |
| 357 | |
| 358 | MEM driver: |
| 359 | * avoid 32 bit overflows |
| 360 | |
| 361 | NetCDF driver: |
| 362 | * add support for reading NC4 unsigned short attributes and variables (#6337) * read correctly nodata values in [128,255] range for (unsigned) Byte data type (#6175) |
| 363 | * implement Get/SetUnitType() using the standard units attribute (https://github.com/OSGeo/gdal/pull/96) |
| 364 | * optimize IReadBlock() and CheckData() handling of partial blocks in the x axis by re-using the GDAL block buffer instead of allocating a new temporary buffer for each block (#5950) |
| 365 | * full read/write support for new NetCDF4 types NC_UBYTE, NC_USHORT, NC_UINT and NC_STRING for variables (except for NC_STRING) and attributes (https://github.com/OSGeo/gdal/pull/99) |
| 366 | * add support for the geostationary projection (#6030) |
| 367 | * fix one byte heap write overflow in NCDFTokenizeArray() (#6231) |
| 368 | * fix potential buffer overflows with uses of nc_inq_varname(), nc_inq_attname() and nc_get_att_text() (#6227) |
| 369 | * validate that gridmapping:GeoTransform has 6 values (#6244) |
| 370 | * fix wrong use of deallocator when writing a GEOLOCATION array, and other issues |
| 371 | * limit number of bands reported to 32768 by default |
| 372 | * validate raster dimensions |
| 373 | * validate content of NC_GLOBAL#GDAL variable (#6245) |
| 374 | |
| 375 | NGSGEOID driver: |
| 376 | * make it work on > 2GB file |
| 377 | |
| 378 | NITF driver: |
| 379 | * data/nitf_spec.xml: Add CSCCGA, MENSRB, SENSRB, STREOB, ENGRDA, EXPLTB and PATCHB TREs (https://github.com/OSGeo/gdal/pull/81, #6285, https://github.com/OSGeo/gdal/pull/86) |
| 380 | * fix parser to properly deal with variable length items not in first nesting level |
| 381 | |
| 382 | Northwoord driver: |
| 383 | * fix computation of intermediate color table values on non-Intel platforms (#6091) |
| 384 | |
| 385 | NTv2 driver: |
| 386 | * support reading/writing/appending to files with big-endian order (cf https://github.com/OSGeo/proj.4/issues/345) |
| 387 | |
| 388 | OpenJPEG driver: |
| 389 | * do not expose block dimensions larger than dataset dimensions to avoid wasting memory (#6233) |
| 390 | |
| 391 | PCIDSK driver: |
| 392 | * Remove the old driver (#6172) |
| 393 | |
| 394 | PDF driver: |
| 395 | * add PDFium library as a possible back-end. Initial support contributed by Klokan Technologies GmbH (http://www.maptiler.com/) |
| 396 | * workaround a bug of PoDoFo 0.9.0 by avoiding loading of vector content in raster-only mode (doesn't prevent the crash if reading the vector layers) (#6069) |
| 397 | * make OGC BP registration work with media box where bottom_y is negative and top_y = 0 (in non rotated case) |
| 398 | * make OGC BP registration work with media box where min_x != 0 (in non-rotated case) |
| 399 | * correctly take into account non-meter linear units with OGC BP encoding, and add support for US FOOT (#6292) |
| 400 | |
| 401 | PDS driver: |
| 402 | * change default values of PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift to 0.5 (#5941) |
| 403 | * fix nodata value for UInt16 to be 0 (#6064) |
| 404 | * accept 'ODL_VERSION_ID = ODL3' in header (#6279) |
| 405 | |
| 406 | PGChip driver: |
| 407 | * driver removed from sources |
| 408 | |
| 409 | PLScenes driver: |
| 410 | * PLScenes V0: avoid opening raster to generate dummy .aux.xml |
| 411 | |
| 412 | PNG driver: |
| 413 | * Support writing 1, 2 or 4 bit single band |
| 414 | * Add NBITS creation option |
| 415 | * fix XML of creation option list |
| 416 | * Update internal libpng to 1.2.56 |
| 417 | |
| 418 | PostgisRaster driver: |
| 419 | * avoid Identify() to recognize OGR PostgreSQL connection strings with schemas option and cause loud 'QuietDelete' (#6034) |
| 420 | |
| 421 | Raw drivers: |
| 422 | * better support for direct read of more than 2GB in single gulp (untested though) |
| 423 | |
| 424 | RIK driver: |
| 425 | * fix Identify() method to recognize again non-RIK3 RIK datasets (#6078) |
| 426 | |
| 427 | RMF driver: |
| 428 | * implement GetNoDataValue() |
| 429 | * add read/write access to new RMF format for files larger than 4 Gb (version=0x201) (https://github.com/OSGeo/gdal/pull/11) |
| 430 | |
| 431 | ROIPAC driver: |
| 432 | * Support offset and scale band (#6189) |
| 433 | |
| 434 | VICAR driver: |
| 435 | * change PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift default values to 0.5 (#5941) |
| 436 | * fix loss of precision in scale and offset |
| 437 | |
| 438 | VRT driver: |
| 439 | * expose implicit 'virtual' overviews for VRT whose bands are made of a single SimpleSource/ComplexSource |
| 440 | * gdalvrt.xsd: Add capitalized versions of true and false (#6014) |
| 441 | * GetSingleSimpleSource(): check there's a single source (#6025) |
| 442 | * honour VRTRasterBand NBITS metadata with SimpleSource and ComplexSource |
| 443 | * properly take into account nodata value declared at VRT band level when doing resampling with non-nearest |
| 444 | * honour relativeToVRT when using AddBand() to add a VRTRawRasterBand (https://github.com/OSGeo/gdal/pull/67) |
| 445 | * VRT warp: fix crash with implicit overviews and destination alpha band (#6081) |
| 446 | * make GetDefaultHistogram() on a sourced raster band save the result in the VRT (#6088) |
| 447 | * serialize NODATA and NoDataValue items with %.16g, e.g. so as to be able to hold large int32 nodata values (#6151) |
| 448 | * VRTSourcedRasterBand: make ComputeRasterMinMax() and ComputeStatistics() forward bApproxOK to overview band (useful for implicit overviews) |
| 449 | * make CreateCopy() preserve NBITS metadata item |
| 450 | * avoid loading sibling file list if not available |
| 451 | * VRT raw: don't truncate last figure of ImageOffset if there are left space padding (#6290) |
| 452 | * VRTWarpedDataset::SetMetadataItem(): fix crash when calling with name=SrcOvrLevel and value=NULL (#6397) |
| 453 | * Warped VRT: fix deadlock in situation where warped VRT datasets are read in multiple threads and the block cache reaches saturation. Also add a GDAL_ENABLE_READ_WRITE_MUTEX config option that can be set to NO to disable the read/write mutex mechanism in cases where it would deadlock (#6400) |
| 454 | |
| 455 | WMS driver: |
| 456 | * add a IIP (Internet Imaging Protocol) minidriver |
| 457 | * limit number of zoom levels for ArcGIS MapServer JSon (#6186) |
| 458 | * determine a resolution that will not result in a number that is larger than the maximum size of an integer. Any value that exceeds the maximum size of an integer will raise an invalid dataset dimensions error. (https://github.com/OSGeo/gdal/pull/89) |
| 459 | |
| 460 | == OGR 2.1.0 - Overview of Changes == |
| 461 | |
| 462 | Core: |
| 463 | * Add OGREditableLayer class to add editing capabilities to drivers with none or limited editing capabilities |
| 464 | * OGRGeometry: add DelaunayTriangulation() method (GEOS >= 3.4) |
| 465 | * OGRGeometry and derived classes: implement copy constructor and assignment operator (#5990) |
| 466 | * OGRGeometry: Fix result of Equals on POINT EMPTY with POINT(0 0) |
| 467 | * OGRFeature SetField(): more type conversions allowed, particularly with array types |
| 468 | * OGRFeature::SetGeometry()/SetGeometryDirectly(): make it work when passed geometry is the currently installed geometry (#6312) |
| 469 | * OGR SQL: do not silently skip NULL values in the first records when evaluating a SELECT DISTINCT (#6020) |
| 470 | * OGR SQL: correctly sort NULL values in first positions (#6155) |
| 471 | * Add OGRUpdateFieldType() |
| 472 | * Decorate a few functions/methods of the OGR layer API with CPL_WARN_UNUSED_RESULT |
| 473 | * WKT export: use 15 significant figures, instead of 15 figures after decimal point (#6145) |
| 474 | * WKT export: do not append .0 after non-finite values (#6319) |
| 475 | * Fix typo in definition of name of OGR_FD_ReorderFieldDefns (final s was missing) |
| 476 | * OGRLayer::SetIgnoredFields(): properly reset state of non first geometry fields (#6283) |
| 477 | * Make OGRLayer::SetSpatialFilter(GetSpatialFilter()) work with non empty spatial filter (#6284) |
| 478 | * OGRLayerDecorator: add missing CreateGeomField() |
| 479 | * OGRLayer::Erase(): do not discard input geometries that have no intersection with method layer (#6322) |
| 480 | * OGRLayer::Erase(): Speedup = ~70% |
| 481 | * Add OGRPreparedGeometryContains() |
| 482 | * Use prepared geometry intersects as pretest in layer Intersection, Union, and Identity methods if requested. |
| 483 | Use prepared geometry containment as pretest in layer Intersection method if requested. |
| 484 | * Bail out from layer algebra methods if GEOS calls fail and not SKIP_FAILURES. |
| 485 | * OGR_G_SetPoints(): error out if padfX or padfY == NULL, do not change coordinate dimension to 3D when pabyZ == NULL, fix optimization on linestring to call setPoints() only if the strides are the ones of a double, not 0 as incorrectly done before (#6344) |
| 486 | * OGRParseDate(): more strict validation to reject invalide dates (#6452) |
| 487 | |
| 488 | OGRSpatialReference: |
| 489 | * Upgrade to EPSG database v8.8 |
| 490 | * Add support for SCH (Spherical Cross-track Height) projection |
| 491 | * Optimize reprojection typically between WGS84 based SRS and WebMercator |
| 492 | * Correctly transform Mercator_2SP and _1SP to ESRI Mercator, and back from ESRI Mercator to Mercator_2SP (#4861) |
| 493 | * No longer enforce C locale if running against latest proj that is locale safe (4.9.2 or later) |
| 494 | * EPSGGetPCSInfo(): use pcs.override.csv in priority over pcs.csv to read projection name, UOM, UOMAngle, GeogCS, etc... (#6026) |
| 495 | * morphToESRI(): use GCS_WGS_1972 as GCS name for EPSG:4322 (#6027) |
| 496 | * morphToESRI(): use Mercator_Auxiliary_Sphere projection for EPSG:3857. morphFromESRI(): map Mercator_Auxiliary_Sphere to EPSG:3857 (#5924) |
| 497 | * Align hard-coded WKT of well known GCS definitions of WGS84, WGS72, NAD27 and NAD83 with the WKT of their EPSG def (#6080) |
| 498 | * morphFromESRI(): special case with PROJCS name 'WGS_84_Pseudo_Mercator' (#6134) |
| 499 | * OSR C API: fix declarations of OSRSetAxes() and OSRSetWagner(), and add missing OSRSetHOMAC(), OSRSetMercator2SP() and OSRSetTPED() (#6183) |
| 500 | * Recognize EPSG 9835 method (Lambert Cylindrical Equal Area (Ellipsoidal)), needed for EPSG:6933 PCS for example |
| 501 | * importFromProj4/exportToProj4(): rework linear unit conversion between WKT name/values and proj4 unit name, and extend its scope in WKT to proj4 conversions |
| 502 | * OSR ESRI .prj: add support for reading custom ellipsoid in Parameters line |
| 503 | * on import of +proj=geos, if +sweep=x is used then store it as a proj4 extension node (#6030) |
| 504 | |
| 505 | Utilities: |
| 506 | * ogrinfo / ogr2ogr: implement @filename syntax for -sql and -where |
| 507 | * ogr2ogr: prevent the -gt setting from overriding transaction group size of 1 set by skipfailures earlier (#2409) |
| 508 | * ogr2ogr: warn if -zfield field does not exist in source layer |
| 509 | * ogr2ogr -skip: rollback dataset transaction in case of failure (#6328) |
| 510 | * ogr2ogr: fix -append with a source dataset with a mix of existing and non existing layers in the target datasource (#6345) |
| 511 | * ogr2ogr: imply quiet mode if /vsistdout/ is used as destination filename |
| 512 | * ogr2ogr: make -dim and -nlt support measure geometry types |
| 513 | |
| 514 | CartoDB: |
| 515 | * fix GetNextFeature() on a newly create table (#6109) |
| 516 | * defer 'CartoDBfycation' at layer closing |
| 517 | * optimize feature insertion with multiple rows INSERT |
| 518 | |
| 519 | CSV driver: |
| 520 | * add editing capabilities of existing files |
| 521 | * add X_POSSIBLE_NAMES, Y_POSSIBLE_NAMES, Z_POSSIBLE_NAMES, GEOM_POSSIBLE_NAMES and KEEP_GEOM_COLUMNS open options |
| 522 | * add HEADERS open option to force OGR to handle numeric column names. (PR #63) |
| 523 | * add EMPTY_STRING_AS_NULL=YES/NO open option |
| 524 | * implement compatibility enhancements for GeoCSV specification (#5989) |
| 525 | * fix detection of TAB delimiter in allCountries.csv when the first line has a comma (#6086) |
| 526 | * fix issues with leading single quote, and missing first line after ResetReading(), when parsing allCountries.txt (#6087) |
| 527 | * speed-up GetFeatureCount() on allCountries.txt |
| 528 | * on CreateDataSource() with a .csv name, do not try to open other existing .csv files in the directory |
| 529 | * make CreateGeomField() returns OGRERR_NONE in case of success instead of OGRERR_FAILURE (#6280) |
| 530 | * avoid adding trailing comma in header line when writing 'WKT,a_single_field' |
| 531 | |
| 532 | DGN driver: |
| 533 | * add partial 3D transformation support for cell headers |
| 534 | |
| 535 | DXF driver: |
| 536 | * detect files without .dxf extension (#5994) |
| 537 | * fix handling of ELLIPSE with Z extrusion axis = -1 (#5705) |
| 538 | * take into account full definition of spline entity (degree, control points, weights and knots) when stroking splines (#6436) |
| 539 | * better handling of various object coordinate systems found in dxf files for point, line, polyline, spline and ellipse entities. Add anchor position to text styles. Remove polygon/polyface mesh parsing from polyline entity (#6459) |
| 540 | |
| 541 | ElasticSearch driver: |
| 542 | * use get /_stats instead of /_status for ElasticSearch 2.0 compatibility (#6346) |
| 543 | |
| 544 | FileGDB driver: |
| 545 | * make CreateFeature() honour user set FID, and implement more fine grained transaction for Linux/Unix |
| 546 | * give a hint of using FileGDB SDK 1.4 is FileGDB compression is used |
| 547 | |
| 548 | GeoJSON driver: |
| 549 | * Add editing capabilities of existing files |
| 550 | * Add ARRAY_AS_STRING=YES open option |
| 551 | * Use '%.17g' formatting by default for floating-point numbers and add SIGNIFICANT_FIGURES layer creation option (#6291) |
| 552 | * add a json_ex_get_object_by_path() function |
| 553 | * fix crash on null / non-json object features (#6166) |
| 554 | * serialize string values that are valid JSon dictionary or array as it (ie do not quote them) |
| 555 | * make sure there's enough space to write the FeatureCollection bbox (#6262). Also avoid duplicating FeatureCollection bbox if source has one (trunk only) |
| 556 | * Export POINT EMPTY as having a null geometry, instead as of being POINT(0 0) (#6349) |
| 557 | * Do not 'promote' a null field to OFTString type if it had another type before (#6351) |
| 558 | |
| 559 | GME driver: |
| 560 | * Driver removed. Maps Engine being shut down at the end of January 2016. |
| 561 | |
| 562 | GML driver: |
| 563 | * VFR: add new attribute DatumVzniku (v1.6) |
| 564 | * VFR: fix ST_UVOH type handling |
| 565 | * VFR: fix ZpusobyOchrany attributes (data types and names) |
| 566 | * VFR: fix CisloDomovni attributes (Integer->IntegerList) |
| 567 | * VFR: fix TEA attributes of StavebniObjekty |
| 568 | * add NAMESPACE_DECL=YES option to OGR_G_ExportToGMLEx() to add xmlns:gml=http://www.opengis.net/gml or http://www.opengis.net/gml/3.2 declaration; Also accept GML2 or GML32 as valid valiues for FORMAT option (#6214) |
| 569 | * serialize in .gfs file the name of the geometry element when it is 'geometry' since this is a particular case (#6247) |
| 570 | * fix logic error in BuildJointClassFromScannedSchema() (#6302) |
| 571 | |
| 572 | GPKG driver: |
| 573 | * make it accept files with non standard extension if they still have the correct application_id (#6396); also accept the .gpkx extension that may be used for extended geopackages |
| 574 | * emit warning when generating a database without .gpkg/.gpkx extension (#6396) |
| 575 | * as GPKG 1.1 uses a different application_id, emit a more specific warning if the application id starts with GPxx (but is not GP10). Add GPKG_WARN_UNRECOGNIZED_APPLICATION_ID config option to avoid the warning |
| 576 | * correct scope of gpkg_geom_XXXXX extensions to be read-write, and allow reading geometry types CURVE or SURFACE |
| 577 | * avoid trying to insert a gpkg_geom_XXXX extension if already done (#6402) |
| 578 | * writer: implement strategy to flush partial_tiles temporary database when it becomes too big (#6462) |
| 579 | * writer: when writing to GoogleMapsCompatible tiling scheme, better deal with source rasters in EPSG:4326 with latitude = +/-90 (#6463) |
| 580 | * fix generation of files with 1-band paletted input dataset. Also improve the logic to retrieve color palette when forcing BAND_COUNT=1 on opening (#6450) |
| 581 | |
| 582 | GPX driver: |
| 583 | * fix crash when parsing a 'time' extension element at route/track level (2.0 regression, #6237) |
| 584 | |
| 585 | ILI driver: |
| 586 | * ILI1: Support for Surface polygon rings spread over multiple geometry records |
| 587 | * ILI1: add string TID support (https://github.com/OSGeo/gdal/pull/91) |
| 588 | * Fix crash with models using types derived from INTERLIS |
| 589 | * Fix memory leaks (#6178) |
| 590 | |
| 591 | JML driver: |
| 592 | * remove arbitrary limitation preventing from reading geometries with <gml:coordinates> larger than 10 MB (#6338) |
| 593 | |
| 594 | KML driver: |
| 595 | |
| 596 | LIBKML driver: |
| 597 | * for documents without folder, use document name when available as name of layer (#6409) |
| 598 | |
| 599 | Memory driver: |
| 600 | * add support for sparse feature IDs |
| 601 | * add ADVERTIZE_UTF8 layer creation option |
| 602 | |
| 603 | MITAB driver: |
| 604 | * Add support for block sizes other than 512 bytes in .map files, for MapInfo 15.2 compatibility (#6298) |
| 605 | * write correct datum id for EPSG:3857 |
| 606 | * read MID files with TAB delimiter and empty first field (#5405) |
| 607 | * use projection code 29 when exporting non-Polar Lambert Azimuthal Equal Area (#5220) |
| 608 | * fix crashes when parsing invalid MIF geometries (#6273) |
| 609 | |
| 610 | MSSQLSpatial driver: |
| 611 | * Implement MSSQL bulk insert (#4792) |
| 612 | * do not treat a primary key that is not of integer type as the FID (#6235) |
| 613 | |
| 614 | NTF driver: |
| 615 | * fix potential buffer overflows when reading too short lines (#6277) |
| 616 | |
| 617 | ODBC driver: |
| 618 | * remove limitations to 500 columns |
| 619 | |
| 620 | ODS driver: |
| 621 | * fix loss of precision in formula computation |
| 622 | |
| 623 | OpenFileGDB driver: |
| 624 | * do not emit warning if SDC/CDF table detected and that FileGDB driver is present |
| 625 | * fix min/max on columns without indices (#6150) |
| 626 | * build correct geometry for a multi-part wkbMultiLineStringZ (#6332) |
| 627 | |
| 628 | OSM driver: |
| 629 | * correct fields ids for the (non frequently used) Node message |
| 630 | * do not override 'our' osm_id (the node, way or relation id) with a tag named 'osm_id' (#6347) |
| 631 | |
| 632 | PG driver: |
| 633 | * Add PRELUDE_STATEMENTS and CLOSING_STATEMENTS open option to be for example able to specify options, like statement_timeout, with pg_bouncer |
| 634 | * Fix 2.0 regression when overwriting several existing PostGIS layers with ogr2ogr (#6018) |
| 635 | * Update PG, PGDump and CartoDB drivers to correctly export POINT EMPTY for PostGIS 2.2 |
| 636 | * avoid reseting error potentially emitted by ExecuteSQL() (#6194) |
| 637 | * sanitize management of quoting for FID column at layer creation |
| 638 | * fix to get SRID on result layer with PostGIS 2.2 |
| 639 | * in copy mode (the default on layer creation), do not truncate the concatenated string list to the field width (#6356) |
| 640 | * make such that GEOMETRY_NAME layer creation option is honoured in ogr2ogr when the source geometry field has a not-null constraint (#6366) |
| 641 | * read and set DESCRIPTION metadata item from/into pg_description system table; add DESCRIPTION layer creation option |
| 642 | * support int2[] and numeric[] types, better map float4[] type |
| 643 | * remove code that was intended to handled binary cursors as it cannot be triggered |
| 644 | * fix append of several layers in PG_USE_COPY mode and within transaction (ogr2ogr -append use case) (#6411) |
| 645 | |
| 646 | PGDump driver: |
| 647 | * fix issue with case of ogc_fid field in case the FID layer creation option is not set by user or by ogr2ogr (related to #6232) |
| 648 | * in copy mode (the default on layer creation), do not truncate the concatenated string list to the field width (#6356) |
| 649 | * make such that GEOMETRY_NAME layer creation option is honoured in ogr2ogr when the source geometry field has a not-null constraint (#6366) |
| 650 | * set DESCRIPTION metadata item from/into pg_description system table; add DESCRIPTION layer creation option |
| 651 | |
| 652 | Shapefile driver: |
| 653 | * accept opening standalone .dbf files whose header length is not a multiple of 32 bytes (#6035) |
| 654 | * fix REPACK crash on shapefile without .dbf (#6274) |
| 655 | * add capability to restore/build a missing .shx file when defining SHAPE_RESTORE_SHX to TRUE (#5035) |
| 656 | |
| 657 | SQLite/Spatialite driver: |
| 658 | * support file:xxx URI syntax (derived from patch by joker99, #6150) |
| 659 | * fix heuristics in OGRSQLiteSelectLayer::GetExtent() to not be used when there's a sub SELECT (#6062) |
| 660 | * fix crash on GetLayerByName('non_existing_table(geom_column)') (#6103) |
| 661 | * fix OGRSQLiteSelectLayerCommonBehaviour::GetBaseLayer() to no longer 'eat' consecutive characters in layer name (#6107) |
| 662 | * Spatialite: turn debug messages warning about update not being supported because of missing or too old spatialite version as errors, and return NULL to the caller (#6199) |
| 663 | * fix memleak in OGRSQLiteTableLayer destructor when updating geometry_columns_time |
| 664 | * VFS: increase mxPathname to 2048 by default, and provide OGR_SQLITE_VFS_MAXPATHNAME config option to be able to configure that higher if that would be needed. Useful when dealing with very long names like /vsicurl/.... with AWS S3 security tokens |
| 665 | * VFS: do not probe -wal files on /vsicurl/ |
| 666 | |
| 667 | SXF driver: |
| 668 | * fix wrong use of endianness macros to fix behaviour on big-endian hots |
| 669 | * add recoding from CP1251 for TEXT attribute that is now decoded |
| 670 | * fix various issues (#6357) |
| 671 | |
| 672 | VRT driver: |
| 673 | * implement CloseDependentDatasets() |
| 674 | * fix editing with 'direct' geometry mode which could cause attribute column to be empty (#6289) |
| 675 | * fix crash with a OGRVRTWarpedLayer using a source layer that would have non geometry column (unlikely to happen currently as this would require explicit disabling it, but more likey with following commit that createe VRT non-spatial layer implictly when the source is non-spatial, linked to #6336) |
| 676 | * avoid creating an implicit wkbUnknown geometry field when the source has no geometry column and there's no XML elements related to geometry fields (#6336) |
| 677 | |
| 678 | XLSX driver: |
| 679 | * fix reading sheets with more than > 26 columns and 'holes' (#6363) |
| 680 | |
| 681 | XPlane driver: |
| 682 | * extend ICAO identifiers to 5 digits (#6003) |
| 683 | |
| 684 | == SWIG Language Bindings == |
| 685 | |
| 686 | All bindings: |
| 687 | * add a options parameter to gdal.ReprojectImage() to pass warp options |
| 688 | * Change ReadRaster and WriteRaster to use GIntBig and the *IOEx-methods |
| 689 | * prevent NULL file pointer from being passed to VSIF*L functions |
| 690 | * make gdal.Rename() accept Unicode strings |
| 691 | * add SpatialReference.GetAxisName() and SpatialReference.GetAxisOrientation() (#6441) |
| 692 | * add SpatialReference.GetAngularUnitsName() (#6445) |
| 693 | |
| 694 | Java bindings: |
| 695 | * Fix typemap for input parameter of type GIntBig (fixes GetFeature(long), DeleteFeature(long), etc...) (#6464) |
| 696 | * Bump minimal java version to 1.5 in case SWIG generates anotations (#6433, patch by Bas Couwenberg) |
| 697 | * GNUmakefile: add -f in rm commands |
| 698 | * GNUmakefile: add support for all hardening buildflags |
| 699 | |
| 700 | Perl bindings: |
| 701 | * Fix #6050: string formatting in croak. |
| 702 | * Perl Makefile.PL: add support for all hardening buildflags (#5998) |
| 703 | * use strict and warnings in overridden constructors. |
| 704 | * add $VERSION to ogr_perl.i (OGR.pm), which is required by pause.perl.org. |
| 705 | * Add some basic module info for CPAN. |
| 706 | * Bugfix for Geo::OGR::Feature->new(). |
| 707 | * Add many utility level algorithms as methods to various classes. |
| 708 | * New class for XML stuff |
| 709 | * New Makefile.PL, which can download and build GDAL. This allows automatic testing of the CPAN module. |
| 710 | * Wrap VSIStdoutSetRedirection and allow creating datasets via an object, which can write and close. |
| 711 | * Geo::OGR::Driver and Geo::OGR::DataSource are now Perl wrappers for respective GDAL classes. |
| 712 | * Add to the error stack also errors from the bindings |
| 713 | * Fix sending utf8 from Perl to GDAL. Should also remove some "uninitialized value" warnings. |
| 714 | * ReadTile and WriteTile methods for Dataset, ReadTile accepts now tile size and scaling algorithm. |
| 715 | * Improved Parent - Child management. |
| 716 | * Improved support for 64bit ints. |
| 717 | * Measures support in Geometry class. |
| 718 | * Many new tests |
| 719 | |
| 720 | Python bindings: |
| 721 | * make Feature.ExportToJson() output boolean value for a boolean field |
| 722 | * support floating point coordinates for the source windows of Band.ReadRaster() and Band.ReadAsArray() |
| 723 | * fix build with SWIG 3.0.6 (#6045) |
| 724 | * make gdal.OpenEx() throw a Python exception in case of failed open when exceptions are enables with gdal.UseExceptions() (#6075) |
| 725 | * Disable opening a NumPy dataset with a filename returned by gdal_array.GetArrayFilename(() unless GDAL_ARRAY_OPEN_BY_FILENAME is set to TRUE |
| 726 | * disable the warning about using deprecated wkb25DBit constant as it uses a trick that prevents the bindings from being used by py2exe / pyinstaller (#6364) |