= GDAL/OGR 1.11.5 Release Notes = The 1.11.5 release is a bug fix release. == Build == * Windows: update mrsid driver build to find MrSID 9.5 dll == Port == * Export VSICreateCachedFile() as CPL_DLL so as to enable building JP2KAK as a plugin (https://github.com/OSGeo/gdal/pull/126) == GDAL algorithms == * GDALWarpOperation::CreateKernelMask(): fix potential 32 bit integer overflow when using warp memory value > 2GB (#6448) == GDAL Core == * GDALLoadRPCFile(): load .rpc files from Ikonos products that have extra end-of-line character (#6341) == Utilities == * gdal_translate: fix random behaviour when -scale is used without source bounds (#6455) * gdalbuildvrt: accept nan as value for -srcnodata and -vrtnodata (#6495) == GDAL drivers == GTiff driver: * Internal libtiff: fix 1.11 regression that prevents from reading one-strip files that have no StripByteCounts tag (#6490) netCDF driver: * do not crash on NC4 unsigned short attributes (#6337) PostgisRaster driver: * fix potential crash when one tile has a lower number of bands than the max of the table (fixes #6267) == OGRSpatialReference == * importFromESRI(): fix import of multi line MERCATOR SRS (#6523) == OGR drivers == Driver removed: * Google Maps Engine (GME) (#6261) GeoJSON driver: * do not 'promote' a null field to OFTString type if it had another type before (#6351) * ESRI Json reader: do not set field width of 2147483647 (#6529) GPKG driver: * fix crash on layers with curve geometries (#6558) KML driver: * fix crash on KML files without content but with nested folders (#6486) LIBKML driver: * fix crash when reading or elements (#6518) MITAB driver: * limit (width, precision) of numeric fields on creation to (20,16) for compatibility with MapInfo (#6392) OpenFileGDB driver: * transcode UTF-16 strings found in column names, alias, etc... to UTF-8 (instead of using only their ASCII byte) (#6544) OSM driver: * do not override 'our' osm_id (the node, way or relation id) with a tag named 'osm_id' (#6347) PG/PGDump drivers: * in copy mode (the default on layer creation), do not truncate the concatenated string list to the field width (#6356) SQLite driver: * fix crash on Unix systems with SQLite >= 3.10.0 when xCurrentTimeInt function is called (#6360) VFK driver: * recreate DB automatically when it's outdated (#6511) WFS driver: * invalidate underlying layer when SetIgnoredFields() is called (QGIS #15112) XLSX driver: * fix reading sheets with more than > 26 columns and 'holes' (#6363) = GDAL/OGR 1.11.4 Release Notes = The 1.11.4 release is a bug fix release. == Port == * Fix CPLGetValueType() to recognize D1 as a string and not a real number (#6305) * /vsistdout/: flush when closing the handle (#6149) * CPLFormFilename(): use '/' directory separator on Windows on /vsicurl_streaming/ files (#6310) == GDAL Core == * Fix leak in GetMetadataItem() on GDALProxyPoolDataset (#6238) == Utilities == * ogr2ogr: prevent from the gt setting to override transaction group size of 1 set by skipfailures earlier (#2409) * gdalwarp: fix -srcnodata to not put garbage values as target dstnodata (#6315) == GDAL drivers == BSB driver: * remove broken and useless logic to deal with extension lines in headers (#6307) ECRG driver: * fix base34 decoding and Windows filename handling (#6271) GTiff driver: * fix SetMetadata() to properly clear existing PAM metadata (complement to #5807) * prevent potential out of bounds read to TIFFTAG_EXTRASAMPLES (#6282) * do not use first directory as potential mask, to avoid assertion in GTiffDataset::SetDirectory() (#6287) * reject files with strips/tiles/scanlines bigger than 2 GB to avoid 32 bit integer overflow. 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) HFA driver: * fix crash when nNumRuns = 0 with RLE compression (#6208) * avoid potential out-of-bounds buffer write (#6286) netCDF driver: * fix one byte heap write overflow in NCDFTokenizeArray() (#6231) * fix potential buffer overflows with uses of nc_inq_varname(), nc_inq_attname() and nc_get_att_text() (#6227) * validate that gridmapping:GeoTransform has 6 values (#6244) * NCDFIsGDALVersionGTE(): validate content of NC_GLOBAL#GDAL variable (#6245) NITF driver: * fix TRE parser to properly deal with variable length items not in first nesting level, such as ENGRDA (not added in nitf_spec.xml in this changeset) (#6285) PDF driver: * correctly take into account non-meter linear units with OGC BP encoding, and add support for US FOOT (#6292) PDS driver: * change default values of PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift to 0.5 (#5941) VRT driver: * serialize NODATA and NoDataValue items with %.16g, e.g. so as to be able to hold large int32 nodata values (#6151) * VRT raw: don't truncate last figure of ImageOffset if there are left space padding (#6290) WMS driver: * limit number of zoom levels for ArcGIS MapServer JSon (#6186) XPM driver: * fix vulnerabilities in reading (#6253) == OGR core == * OGRSQL: correctly sort NULL values in first positions (#6155) * OGRLayer::SetIgnoredFields(): properly reset state of non first geometry fields (#6283) * Make OGRLayer::SetSpatialFilter(GetSpatialFilter()) work with non empty spatial filter (#6284) * OGRLayer::Erase(): do not discard input geometries that have no intersection with method layer (#6322) == OGRSpatialReference == * Fix recently introduced memory leak in morphFromESRI() with Mercator Auxiliary Sphere (#5924) == OGR drivers == CSV driver: * Make OGRCSVLayer::CreateGeomField() returns OGRERR_NONE in case of success instead of OGRERR_FAILURE (#6280) GML driver: * serialize in .gfs file the name of the geometry element when it is 'geometry' since this is a particular case (#6247) * VFR: fix broken processing VFR ST_UVOH files (#6248) * VFR: fix reading ZpusobOchrany attributes (#6258) MITAB driver: * fix segfault when parsing a Region 0 (#6273) * TABPolyline::ReadGeometryFromMIFFile(): fix segfaults on invalid geometries (#6273) * TABRectangle::ReadGeometryFromMIFFile(): fix crash on malformed ROUNDRECT (#6273) NTF driver: * fix potential buffer overflows when reading too short lines (#6277) OpenFileGDB driver: * fix min/max on columns without indices (#6150) * fix import of MultiLineString Z geometries with several parts (#6332) PG driver: * fix creation of multiple geometry fields with SCHEMA creation option (#6141) PGDump driver: * 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) Shape driver: * fix crash on MultiLineStringM shapes that have no M component (#6317) VRT driver: * fix editing with 'direct' geometry mode which could cause attribute column to be empty (#6289) = GDAL/OGR 1.11.3 Release Notes = The 1.11.3 release is a bug fix release. == Build (Unix) == * Support custom buildflags in GRASS plugin (#5850) * GRASS 7.0.0 support (#5852) * fix detection of ECW SDK 5.1 on Mac (#5867, #5390) * Add support for Poppler >= 0.31.0 (#6118) == Port == * /vsitar/: remove useless validation test that prevents from opening valid .tar files (#5864) == Algorithms == * gdal_grid: fix crash in optimized mode with GCC 4.4 on 64bit (#5987) * Fix failure in GDALSuggestedWarpOut2() when computing output image size in case the top-left and bottom-right corners tranform to the same point (#5980) * Rasterize: add check to avoid burning negative x values (#5641) == GDAL core == * GMLJP2 reader: add compatibility with OGC CRS URL as found in GMLJP2v2 (#5940) * GMLJP2: on reading, don't do axis inversation if there's an explicit axisName requesting easting, northing order (#5960) * GMLJP2: add missing rangeParameters element to validate against GMLJP2 schema (#5707) == Utilities == * gdalbuildvrt: fix potential crash when using -b switch (#6095) * gdalserver: fix compilation with recent GNU libc (such as in Arch Linux) (#6073) * gdalwarp: emit error message if file specified with -cutline cannot be opened (#5921) * gdalwarp: fix 1.11.2 regression when invoking several times gdalwarp with several input files on the same target file, and when the input files have a nodata setting: only the last input file was warped onto the target dataset (#5909) * ogr2ogr: fix crash with -clipdst when a reprojection fails before (#5973) * ogr_layer_algebra.py: for Update, Clip and Erase, only creates attribute of input layer by default (#5976) == GDAL drivers == ECRG driver: * change subdataset definition to make sure that they only consist of frames of same scale (#6043) ERS driver: * fix SetProjection() (#5840) GeoRaster driver: * New SRID search (#5911) * Fix user-defined SRID issue (#5881) GTiff driver: * 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) * avoid generated corrupted right-most and bottom-most tiles for 12-bit JPEG-compressed (#5971) * on reading attach PROJ4 extension node for Mercator_Auxiliary_Sphere / WebMercator (#5924) HDF4 driver: * fix AnyTypeToDouble() to use proper type (int instead of long) to work with DFNT_INT32/DFNT_UINT32 on 64-bit Linux (#5965) HF2 driver: * fix reading side of the driver to work on architectures where char is unsigned, like PPC or ARM (#6082) NetCDF driver: * fix crash on opening a NOAA dataset (#5962) * fix computation of inverse flattening (#5858) Northwoord driver: * Fix computation of intermediate color table values on non-Intel platforms (#6091) * NWT_GRD: don't advertize scale/offset as they are transparently applied in IReadBlock() (#5839). RPFTOC driver: * add tweak for weird relative directory names in the A.TOC file (#5979) TIL driver: * fix half pixel shift in geo registration (#5961) VRT driver: * add more checks to CheckCompatibleForDatasetIO() to avoid issues with overview bands (#5954) * fix rounding of output window size on VRTSimpleSource (#5874) == OGRSpatialReference == * morphFromESRI(): map Mercator_Auxiliary_Sphere to EPSG:3857 (#5924) == OGR drivers == EDIGEO driver: * backport conversion of atof() to CPLAtof() to avoid truncation of floating point numbers including coordinates on a non C locale (#6070) GML driver: * accept choice between gml:polygonProperty and gml:multiPolygonProperty (#5977) * fix GML_ATTRIBUTES_TO_OGR_FIELDS=YES to work correctly with xlink:href too (#5970); and also backport a trunk fix for writing the correctly path to attributes in nested elements * VFR: add support for OriginalniHraniceOmpv (#5853) GeoJSON driver: * avoid truncation of real numbers on reading (#5882) * TopoJSON: fix segfault when reading https://raw.githubusercontent.com/mbostock/topojson/master/test/topojson/properties-id-computed.json (#5919) * GeoJSON writer: make string comparison for authority name case insensitive so as to recognize lowercase 'epsg' (#4995) GPKG driver: * on reading, recognize GEOMCOLLECTION to be compatible of GDAL 2.0. Still writing GEOMETRYCOLLECTION in 1.11 branch (#5937) * escape column names on reading/insert/update (#5879) MSSQLSpatial driver: * Add support for creating features with default values (#5957) OpenFileGDB driver: * fix 1.11.2 regression with FileGDB v9 where the presence of a non spatial table can cause other layers not to be listed (#5875) PG/PGDump drivers: * fix truncation of fields to work with multi-byte UTF-8 characters (#5854) Shape driver: * SHPReadOGRFeature() should free the passed psShape when not NULL and if the DBF record is deleted, so as to avoid later reads to faild (linked to #5974) SQLite driver: * Fix issue with consecutive identical characters in layer name with ExecuteSQL() (#6107) == SWIG Language Bindings == Perl bindings: * Fix creation of Field Definition object (#6099) Python bindings: * Fix build with SWIG 3.0.6 (#6045) = GDAL/OGR 1.11.2 Release Notes = The 1.11.2 release is a bug fix release. == Build == * configure: fix detection of OCI by changing linking order to please modern GCC (#5550) * configure: fix test to accept MariaDB 10.X as valid MySQL (#5722) * More compiler warnings addressed (#5414) * Windows build of PDF: fix compilation issue with Visual Studio 2012 (#5744) * Windows build: Add support for MrSID 9.1 SDK (#5814) * Windows build: when building netCDF, HDF4, HDF5 as plugins, call registration of 'sub-drivers' GMT, HDF4Image and HDF5Image (#5802) == Port == * CSV finder: Stop probing for csv/horiz_cs.csv. (#5698) * /vsicurl/: avoid reading after end-of-file and fix failure when reading more than 16MB in a single time (#5786) * CPLHexToBinary(): faster implementation (#5812) == GDAL Core and algorithms == * Make GetMaskBand() work with GDT_UInt16 alpha bands (#5692) * Fix 32bit overflow in GDALRasterBand::IRasterIO() (#5713) * RPC transformer: take into account nodata in RPC DEM (#5680) * RPC transformer: add RPC_DEM_MISSING_VALUE transformer option to avoid failure when there's no DEM at the transformed point (#5730) * Fix GDALSuggestedWarpOutput() wrong extent in some circumstances (e.g. dataset of big dimension with world coordinates) (#5693) * Fix crash when calling GetTiledVirtualMem() on non-Linux platform (#5728) * warp: fix integer overflow when reprojecting into an area with (part of) bounds completely outside of the source projection (#5789) * OpenCL warper: fix OpenCL code compilation with NVIDIA OpenCL (#5772) == Utilities == * gdalwarp: initialize destination dataset to no_data value when automatically propagating source nodata (#5675) * gdalwarp: only apply INIT_DEST when processing the first input dataset (#5387) * gdaldem: avoid too large files to be produced when using -co COMPRESS=xxxx -co TILED=YES (#5678) == GDAL drivers == GRASS driver: * fix compilation issues against GRASS 7 (#2953) GIF driver: * fix crash on images without color table (#5792) * validate the size of the graphic control extension block (#5793) GTiff driver: * Internal overviews: for near, average, gauss, and pixel interleaving, make sure to use the same code path for compressed vs uncompressed overviews (#5701) * allow lossless copying of CMYK JPEG into JPEG-in-TIFF (#5712) * when overriding metadata in update mode, make sure to clear it from PAM file (#5807) * fix GTiffRasterBand::DirectIO() to work with TIFF files with multiple directories (overviews, masks) (#5831) * Internal libtiff: partial (mostly security related fixes) upgrade to 4.0.4beta (#5830) ISIS3 driver: * fix to recognize IsisCube.Mapping.LatitudeType = Planetocentric (#5717) JP2OpenJPEG driver: * add compatibility with OpenJPEG 2.1 (#5579) JPEG driver: * Report non-fatal libjpeg errors as CE_Warning (or CE_Failure if GDAL_ERROR_ON_LIBJPEG_WARNING = TRUE) (#5667) KMLSuperOverlay driver: * remove useless and unreliable computations on floating point numbers that caused issues (truncated raster) on 32bit (#5683) USGSDEM driver: * take into account horizontal unit = ft in the UTM case (#5819) VRT driver: * fix RasterIO() to be able to fill buffers larger than 2GB (#5700, #5734) == OGR core == * ogr_core.h: only ignore -Wfloat-equal for IsInit() and not for the rest of the file and files that inc it (#5299) * OGR layer algebra: properly initialize field maps to avoid Valgrind warnings in OGRLayer::Update() (#5778) == OGR drivers == CSV driver: * fix segfault when reading allCountries.txt of geonames.org (#5668) FileGDB: * 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) GeoJSON driver: * ESRIJson: parse correctly rings of esriGeometryPolygon objects to build correct Polygon or MultiPolygon (#5538) GML driver: * Fix incorrect geometry cast when reading GML topogeometries (#5715) * Update GFS files for RUIAN (UVOH & OB) (#5770) LIBKML driver: * when skipped, fix segfault on second OGRRegisterAll() call (#5775) * do not delete the libkml singleton factory (linked to #5775) MapInfo File driver: * Add GDA94 datum entries to the lookup table (#5671) * fix segfault in CreateFeature() if passing an invalid OGR feature style string (#1209) MSSQL driver: * Fix recognizing image columns as geometry columns for the select layers. (#5498) * Fix issue when creating non-spatial table (#5696) * Fix to read metadata if the tables are specified in the connection string (#5796) * Fix invalid use of CSLAddString() in OGR MSSQL (#5810) * Fix crash if the tablename is specified in the connection string (#5826) MySQL driver: * don't be dependant on locale when building spatial filter (#5720) NAS driver: * make chevrons configurable by NAS_INDICATOR (#5708) OCI driver: * Initialize member variable to avoid UpdateLayerExtents() to be called randomly on non spatial tables (#5376) * fix FID (multi_load=off, OGRNullFID) - start with 1 (not -1) (#5454) OpenFileGDB driver: * fix ResetReading() on SQL layer with ORDER BY on indexed column (#5669) * add support for non spatial GDB v9 tables (#5673) PG driver: * fix GDAL 1.11.0 regression that prevented to retrieve more than 500 features from a connection with tables= parameter and on a SQL result layer (#5837) SQLite/Spatialite driver: * remove 'T' suffix when formatting the content of a Date field (#5672) * fix segmentation fault when executing OGR2SQLITE_Register() when compiling against sqlite 3.8.7 (#5725) * make GetFIDColumn() work when run as first method call (#5781) VRT driver: * do not propagate ignoring of x and y cols of a PointFromColumns to the source layer (#5777) XLSX driver: * fix column numbering when there are more than 26 columns (#5774) == SWIG Language Bindings == Python bindings: * Fix hang of Python in case of repeated call to gdal/ogr.UseExceptions() and CE_Warning emitted (#5704) * fix processing error of ogr_python.i with SWIG 3 (#5795) * NUMPY driver: avoid returning CE_None in GetGeoTransform() when there's no geotransform set (#5801) = GDAL/OGR 1.11.1 Release Notes = The 1.11.1 release is a bug fix release. '''Security announcement''' Robert Coup has noticed a security problem with the OGR WCTS service. This code is not part of the standard build process, nor usually packaged by binary distributions, so most users should not be affected by this problem unless they have compiled it by themselves. This code still lies in the ogr/wcts directory from the source distribution of the 1.11 branch. For more details, you can read the "Security Concern" paragraph at http://svn.osgeo.org/gdal/spike/wcts/html/index.html == Build == * Fix compilation errors with json-c 0.12 (#5449) * configure: fix for cpl_recode_iconv.cpp compilation error on freebsd 10 (#5452) * Fix compilation error in alg/gdalgrid.cpp when AVX is available, but not SSE (#5566) * Fix wrong include order in ingr and nitf subdirs w.r.t internal libtiff (#5644) * Add CPL_UNUSED for gcc >= 4 (#5414) == Port == * CPLSpawn() on Windows: quote arguments with spaces in them (#5469) * /vsigzip/: avoid infinite loop when reading broken .gml.gz file (#5486) * /vsizip/: fix bug that caused premature end of file condition with some read patterns (#5530) * /vsizip/: on >4GB zips: accept .zip declare 0 disks (#5615) * Fix stack corruption upon thread termination with CPLSetThreadLocalConfigOption on Windows 32 bit (#5590, reported by cleo) * cpl_http.cpp: truly set CURLOPT_NOSIGNAL if available (#5568) == GDAL Core == * EXIF reader: add missing validation for some data types (#3078) * Fix segfault in GDALPamRasterBand::SerializeToXML() when saving an empty RAT (#5451) * Windows plugin: complementary fix to #5211 to avoid error dialog box when there are dependency problems (#5525) * RPC transformer with DEM: fix near interpolation (patch by liminlu0314, #5553) * OpenCL warper: remove unused variable in bilinear resampling that can cause compilation error (#5518) * GDALCreateTPSTransformer(): fix crash if the forward or backward transform cannot be computed (#5588) * 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) == Utilities == * gdal2tiles.py: fix inverted long/lat in BoundingBox and Origin elements of tilemapresource.xml (#5336) * pct2rgb.py: make it work (again) with color tables with less than 256 entries (#5555) == GDAL drivers == BAG driver: * change nodata value for uncertainty band to 1e6; and do not expose wrong values of minimum and maximum of uncertainty band (#5482) DIMAP driver: * DIMAP 2: handle the case where the Raster_Data element is in main file; fix to extract geodetic SRS; fix to extract geotransform from JPEG2000 file if not available in XML (#5018, #4826) ENVI driver: * avoid generating potentially corrupted .hdr files when opening in update mode; Write 'Arbitrary' instead of 'Unknown' as the projection name for an undefined SRS; when writing, consider that LOCAL_CS SRS is like ungeoreferenced (#5467) ERS driver: * reset RasterInfo.RegistrationCellX/Y if setting a new geotransform on an updated .ers file (#5493) MBTILES driver: * better detection of 4 bands dataset (if sample tile is a paletted PNG with transparency) (#5439) * take into account alpha component of color table in RasterIO() (#5439) * avoid wrong detection of 3 bands when finding paletted PNG in /vsicurl mode (#5439) GIF driver: * add compatibility with giflib 5.1 (#5519) GeoRaster driver: * fix Oracle SRID authority (#5607) GRIB driver: * avoid divide by zero while setting geotransform on 1xn or nx1 grib file (#5532) GTiff driver: * Internal libtiff: fix segfault on invalid JPEG-in-TIFF (http://bugzilla.maptools.org/show_bug.cgi?id=2471) * allow unsetting TIFFTAG_SOFTWARE, TIFFTAG_DOCUMENTNAME, etc... by removing them from metadata list or passing None as a value of SetMetadataItem() (#5619) * fix to make band.SetMetadata({}) clear band metadata (#5628) HFA driver: * fix recognition of Hotine Mercator Azimuth Center in Imagine format (and Swisstopo GeoTIFF) (#5551) JP2KAK driver: * fix bug in vsil_target::end_rewrite() that prevented TLM index to be generated (#5585) JPIPKAK driver: * avoid symbol collision with kdu_cpl_error_message from JP2KAK driver (#4865) MSG driver: * fix compilation problem (#5479) NITF driver: * HISTOA TRE: put definition of TRE in conformance with STDI-0002 (App L page 14) and STDI-0006 (Page 57) (#5572) OpenJPEG driver: * fix warning when reading a single tile image whose dimensions are not a multiple of 1024 (#5480) OZI Map driver: * retrieve the image filename in a case insensitive way (#5593) PDF driver: * fix compilation problem with Podofo on Windows (#5469) PostGISRaster driver: * Fix read of metadata for tables with multiple raster cols (#5529) VRT driver: * make sure nodata value set on VRT raster band is taken into account in statistics computation (#5463) * fix ComputeStatistics() on VRT that are a sub-window of source dataset (#5468) * VRT raw: fix corrupted serialization on Windows (#5531) * 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) WMS driver: * fix to make GDAL_DEFAULT_WMS_CACHE_PATH configuration option work as expected (#4540) XYZ driver: * fix back line seeking with datasets that have not the same number of values per lines (#5488) * report correct values of min/max for GDT_Float32 bands (#5492) == OGR core == * Fix OGRFeature::SetGeometryDirectly() and SetGeomFieldDirectly() to free the passed geometry even if the method fails (#5623) * OGRLayerDecorator: remove return statements from void methods (#5618) * OSR 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) == OGR utilities == * ogr2ogr: fix problem with SRS when copying layers with multiple geometry columns with different SRS (#5546) * ogr2ogr: turn string value to one element list if destination field is stringlist == OGR drivers == CSV driver: * fix to avoid truncation of WKT geometries to 8000 characters (#5508) FileGDB: * use LatestWKID when available, and turn importFromEPSG() errors into warning (#5638) GeoJSON driver: * accept and skip UTF-8 BOM (#5630) GME driver: * Merged SetSpatialFilter fix GML driver: * fix bug that prevented multiple instanciation of the reader with Xerces backend (#5571) * update GFS files for RUIAN (#5610) GPKG driver: * fix crash on ogr2ogr -f GPKG with non-spatial layer (#5445) * fix GetExtent() crash on layers without extent set in gpkg_contents (#5471) * put correct value (1) in gpkg_geometry_columns for 2.5D tables (#5481) * fix component geometry type of GPKG 3D MultiGeometries (#5629) IDRISI driver: * fix support for multi-ring polygons (#5544) VFK driver: * change default DB filename MapInfo File driver: * MIF: Remove duplicate OLCSequentialWrite test and report OLCCreateField (#5477) * MIF: don't write field width for integer fields in .mif, which is incompatible with MapInfo (#3853) * MIF: close polygon rings when reading Region from MIF file (#5614) MSSQL driver: * Fix schema handling (#5401) * Fix spatial geometry field handling (#5474) MySQL driver: * thread-safe initialization of mysql client library (#5528) NAS driver: * implement wfs:update (adds new context 'update' and fields "endet" and "anlass" to "delete" layer). * also assign xlink:href attributes as layer attribute, not only in "alkis_beziehungen" layer; (#5372) OCI driver: * fix memory leaks (#5599) * fix creation of DATE fields (#5600) * fix creation of columns whose name length is longer than 30 characters (#5466) OpenFileGDB driver: * fix occasionnal write-after-end-of-buffer (#5464) * fix spatial filter with GeneralPolygon shapes (#5591) * add compatibility with .gdbtable files bigger than 4 GB (#5615) * remove not really justified check in .gdbtablx that prevents legit GDB to be read (#5635) * fix for reading GDB with string fields with a default value length > 127 (#5636) * support opening files with ConfigurationKeyword=MAX_FILE_SIZE_4GB or MAX_FILE_SIZE_256TB (#5615) * use LatestWKID when available, and turn importFromEPSG() errors into warning (#5638) * increase accepted size for field description zone up to 10 MB (#5660) OSM driver: * fix random crash, particularly on MacOSX (#5465) PG driver: * fix crash when writing a StringList with 0 element (#5655, derived from patch by rtorre) PGDump driver: * fix crash when writing a StringList with 0 element (#5655, derived from patch by rtorre) Shapefile driver: * fix writing values up to 2^53 in OFTReal fields with 0 decimal places (#5625) TIGER driver: * Fix potential buffer underflow when providing /vsistdin/ to Tiger driver (#5567) VFK driver: * recode also header values (#5631) * process DKATUZE from header properly (#5633) == SWIG Language Bindings == Java bindings: * Pass eRWFlag to allow both reading or writing (#5506). Write was broken in DatasetRasterIO(). Perl bindings: * Fix schema corruption when 'Index' is a field (#5662) = GDAL/OGR 1.11.0 Release Notes (r25919 to r27200) = == In a nutshell... == * New GDAL drivers: - KRO: read/write support for KRO KOKOR Raw format * New OGR drivers: - CartoDB : read/write support - GME (Google Map Engine) : read/write support - GPKG (GeoPackage): read-write support (vector part of the spec.) - OpenFileGDB: read-only support (no external dependency) - SXF driver: read-only support - WALK : read-only support - WasP : read-write support * Significantly improved drivers: GML, LIBKML * RFC 40: enhanced RAT support (#5129) * RFC 41: multiple geometry fields support * RFC 42: OGR Layer laundered field lookup * RFC 43: add GDALMajorObject::GetMetadataDomainList() (#5275) * RFC 45: GDAL datasets and raster bands as virtual memory mapping * Upgrade to EPSG 8.2 database == New installed files == * bin/ogrlineref * lib/pkgconfig/gdal.pc * gdalcompare.py * data/gml_registry.xml * data/inspire_cp_CadastralParcel.gfs * data/inspire_cp_BasicPropertyUnit.gfs * data/inspire_cp_CadastralBoundary.gfs * data/inspire_cp_CadastralZoning.gfs * data/ruian_vf_ob_v1.gfs * data/ruian_vf_st_v1.gfs * data/ogrvrt.xsd == Backward compatibility issues == == GDAL/OGR 1.11.0 - General Changes == Build(Unix): * add Unix configure support for SOSI * remove pointers to old ver of ingres library files * add --with-libjson-c configure option to build against external libjson-c (>= 0.11) (#4676) * compilation fixes for iOS (#5197, #5198) * update to autoconf 2.69 * add pkg-config gdal.pc (#3470) * configure for FileGDB: add explicit linking to libfgdbunixrtl (requires FileGDB SDK >= 1.2) (#5215); also try .dylib extension (#5221) * fix so that Java installs are found on the MAC to enable the MDB driver (#5267) * fix compilation with recent MySQL versions (5.6 for example) (#5284) * support --with-jp2mrsid with standalone Kakadu with MRSID v8 or later * Fix parallel build in Python bindings (#5346) * PCIDSK: don't link against libjpeg if configured --without-jpeg * Update configure script to pick up ECW JP2 SDK 5.1 (#5390) * add a 'make install' target for the Java bindings (#5424) * add Vagrant configuration Build(Windows): * add option to generate VC project for x64 on makegdal_gen.bat * nmake.opt: add WITH_PDB=1 option to optionaly generate .pdb file on Release builds (#5420) * add support for building the OGR SOSI driver as a plugin (#3638) * add support for building the HDF4 driver as plugin (#5294) * add support for MrSID v9 * Remove makegdalXX.bat generated files == GDAL 1.11.0 - Overview of Changes == Port: * vsisubfile: fix Eof() behaviour to be POSIX compliant, so that the shapefile reader can read the last feature when using /vsitar (#5093) * vsicache: fix for 32bit binaries when file size is over 2GB (#5170) * vsicache: add optional nChunkSize and nCacheSize parameters to VSICreateCachedFile() * vsicurl: add CPL_VSIL_CURL_USE_HEAD config option to disable use of CURL HEAD for other services like mapbox (likely lame python http implementations) * vsitar: avoid infinite loop in case of invalid .tar structure * vsizip: fix path separator in CPLFormFilename * vsizip: allow additional extensions listed in CPL_VSIL_ZIP_ALLOWED_EXTENSIONS config option. * vsizip: improve UTF-8 support of filenames inside ZIP file (#5361) * vsizip: fix ZIP64 support * vsigzip: reset EOF flag when doing a Seek() to be POSIX compliant * curl: add .netrc support * Windows CPLGetSymbol(): avoid dialog boxes to pop up when a DLL or one of its dependencies does not exist (#5211) * Add CPLOPrintf() and CPLOvPrintf() functions for easy CPLString formatting * CPLBase64DecodeInPlace() : fix to be robust to malformed base64 strings * CPLQuadTree: add CPLQuadTreeInsertWithBounds() where the pfnGetBounds is not needed. * CPLQuadTree: fix potential infinite recursion when inserting several points with identical coordinates in the mode with limited bucket size * Protect concurrent calls to setlocale() by a mutex (#5366) Core: * RFC 45: GDAL datasets and raster bands as virtual memory mapping * GDALRasterBand::GetHistogram(): ignore nodata values (#4750, #5289) * allow auto loading of drivers to be disabled via config option * PAM .aux.xml and VRT: serialize Z component of a GCP as 'Z' attribute, for consistency, instead of GCPZ that could not be read back previously. In reading code, try reading 'Z' and if not found try 'GCPZ' (#5326) * JPEG2000: Add GDALGeorefPamDataset and GDALJP2AbstractDataset classes and use them in JP2KAK, JP2ECW, JP2OpenJPEG, JPEG2000 and MrSID drivers so that PAM georeferencing consistently overrides internal georeferencing * GDALDataset::IRasterIO(): don't use BlockBasedRasterIO() when INTERLEAVE=PIXEL if the request band count is just 1 * CopyWholeRaster(): make default GDAL_SWATH_SIZE to 1/4 of GDAL_CACHEMAX instead of hard-coded value of 10 MB * don't report empty RAT on GDALGetDefaultRAT() (#5232) * modify GDALGCPsToGeotransform() to do the regression in normalized coordinates to make the math more stable. * expose new GDALComposeGeoTransforms() function. * GDALDefaultOverviews::HaveMaskFile(): avoid fetching .ovr file * JPEG2000: Fix reading georeferencing from some JPEG2000 files with duplicated GeoTIFF JP2Box (#5249) * Cleanup raster block mutex (#5296) * Driver registration: move JPEG2000 (Jasper based) after MrSID JPEG2000 support Algorithms: * warper: fix regression with lanczos resampling when yradius > xradius (#5058) * warper: Make GDALCreateGenImgProjTransformer2() and GDALCreateGenImgProjTransformer3() fail when the creation of the reprojection transformer fails * warper: Fix warping when input pixel size is too close to 0 (#5190) * warper: revise formula of cubic resampling kernel, and a few optimizations (#5209) * warper: added DST_METHOD and support for GCP and TPS dest * warper: add support for DST_METHOD=RPC * warper: fix mode and near resampling corner computation (#5311) * warper: GDALGenImgProjTransform(): don't set panSuccess[i] to 1 in the middle of the function, if an intermediate transform before has set the flag to 0 * warper: fix cutline blending (#5343) * warper: Average/mode kernels: make them less sensitive to numerical precision issues (#5350) * warper: Average/mode kernels: avoid 'holes' when the source coordinates are in a reversed order from the target coordinates (#5433) * warper: provide prototypes and work around strict compiler requirements on some opencl platforms (#5400) * RPC: fix for computation of adfGTFromLL (#5395) * TPS: optimization for GCC x86_64 that make computation about twice faster with huge number of GCPs * TPS: when using Armadillo to solve the coefficients, use solve(A,B) instead of inv(A)xB to faster resolution * TPS: compute direct and inverse transformations in parallel when warping option NUM_THREADS or GDAL_NUM_THREADS config. options are set to > 1 * Geoloc: fix wrong bilinear interpolation in GDALGeoLocTransform() (#5305) * Geoloc: fail transformation of coordinates that is located on a nodata place of the geoloc array * rasterize: preliminary support for MERGE_ALG=ADD for heatmaps * gdal_grid: Add AVX optimized version of GDALGridInverseDistanceToAPower2NoSmoothingNoSearch * fill_nodata: GDALFillNodata(): Fix use of uninitialized memory and integer overflows (#4010, #5203) * rpc: Fix out-of-bounds read in RPC dem cubic interpolation Utilities: * gdalinfo: add -listmdd and -mdd all options (#5275) * gdal_translate: add a -exponent option to be used with -scale * gdal_translate: fix output file naming scheme in gdal_translate -sds (#5119) * gdal_translate: fix logic in detection non-gray color table level (#5245) * gdal_translate: add a -norat option * gdal_translate: don't add 0.1 when -scale is used with a dstmin equal to dstmax (usefull to generate a raster with uniform color, i.e. scaleRatio = 0) * gdal_translate: use floor() to compute image coordinates from world coordinates when specifying -projwin (usefull when extracting from left or top of upper-left corner, which generate negative image coordinates) (#5367) * gdaltindex: remove annoying warning 'Warning 1: Field location of width 255 truncated to 254' (#5121) * gdaltindex: add -src_srs_name and -src_srs_format to go with MapServer RFC100; add also a -f and -lyr_name options to be able to create a non-shapefile tileindex * gdalwarp: Fix segfault where metadata values weren't being nullchecked properly during conflict resolution (#5069) * gdalwarp: honor -s_srs when using cutline (#5081) * gdalwarp: copy nodata values from source to dest if -dstnodata is not given ; add option to not set dest nodata with -dstnodata None (#5087) * gdalwarp: do not return a non-zero exit status for warnings * gdalwarp: prevent from copying statistics metadata (#5319) * gdal_rasterize: set the progress bar to 100% even when there's nothing to do * gdal_grid: add support for diffferent types of geometries (#5341) * gdal_grid: add -z_increase and -z_multiply options * gdaldem: check that value of -z, -s, -az and -alt is numeric * gdalbuildvrt: validate values of -srcnodata and -vrtnodata arguments * gdal2tiles.py: Corrected OpenLayers code to reflect fix to geodetic resolution factor * gdal2tiles.py: add --tmscompatible flag so as to produce 2 tiles at zoom level 0 in geodetic profile * rgb2pct.py: Use python tempfile logic to avoid permissions issues with cwd (#5079) * gdal_edit.py: add a -ro option for drivers refusing to use the dataset in update-mode. * gdal_calc.py: add --allBands options (#5388) * Add vsipreload.cpp that can be compiled as a shared library that can be LD_PRELOAD'ed as an overload of libc to enable VSI Virtual FILE API to be used with binaries using regular libc for I/O * Add the wcs_virtds_params.py sample utility to be able to set the MapServer WCS virtual dataset parameters from a tileindex with rasters of mixed SRS (linked to MapServer RFC100) * gdalcompare.py: move to scripts * gdalcompare.py: ensure image dimensions match * gdal_ls.py: Fix issue with UTF-8 characters Multi driver changes: * JPEG2000 drivers: take into account PixelIsPoint in GeoJP2 boxes, and expose AREA_OR_POINT=Point (#5437) * JP2KAK, JP2ECW, JP2OpenJPEG, JPEG2000 CreateCopy(): take into account AREA_OR_POINT=Point if present to write GeoJP2 box (#5437) AAIGRID: * revert DECIMAL_PRECISION and add SIGNIFICANT_DIGITS to CreateCopy() (#3732) AIGRID: * Turn off errors that can be triggered if the info has no VAT table related with this coverage (#3031) BAG driver: * Recognise falseNorthing=10000000 as UTM South (#5152) DIMAP driver: * fix memleak in error-code path DTED driver: * Speed optimization to be more friendly with CPU cache in GDAL_DTED_SINGLE_BLOCK=YES mode ECW driver: * fix crash in GDALDeregister_ECW() with ECW SDK 5 called from GDALDestroy() (#5214) * fix issue with ECW_CLEVER optimization when nPixelSpace != sizeof eBufDataType (#5262) Envisat driver: * implement more reliable way of extracting GCPs from Meris tie-points (#5423) * add DEM corrections of TP-ADS products when present (#5423) * workaround dateline discontinuity in GCPs so they can be used with GDAL warping transformers (#5423) ERS driver: * fix wrong interpretation of RegistrationCellX/RegistrationCellY (#2612, #3056, #5075) GeoRaster driver: * fix RPC support (#4038) * fix read error when reading from pyramids (#5076) * make regular table and secure file a default for RDT (#5127) * fix error when reading NBIT pyramid levels (#5199) * show the VAT as RAT (#5200) * fix reading and writing of statistics metadata (#5237) * add generate pyramid create options (#5288) * fix incorrect geotransform interpretation when there is no SRS (#5323) GRASS driver: * fix compilation issues for GRASS 7 GRIB driver: * display temperature unit as deg Celcius in metadata (#3606) GTiff driver: * when compiling against internal libtiff, in read-only mode, optimization to avoid fetching the whole Strip/TileCounts and Strip/TileOffsets arrays * add validation of source overview characteristics with COPY_SRC_OVERVIEWS (#5059) * convert invalid TIFFTAG_RESOLUTIONUNIT=0 to 1(Unknown) (#5069) * fix potential issues in gt_citation.cpp / CheckUTM() * upgrade internal libtiff to latest CVS * implement reading and writing of ICC profiles (#5246) * make SetColorInterpretation() round-trip with GetColorInterpreation(); read color interpretation from PAM if it exists (overrides internal tiff color interpretation); set TIFFTAG_PHOTOMETRIC=PHOTOMETRIC_RGB if calling SetColorInterpretation() with R,G,B and no explicit PHOTOMETRIC creation option defined * gt_wkt_srs.cpp: fix compilation with external libgeotiff. The file is dependant of quite a few CPL stuff, don't try to pretend otherwise * implement GetVirtualMemAuto() for some formulations of TIFF files (RFC 45) * fix reading a single-strip TIFF file where the single strip is bigger than 2GB (32bit builds only) (#5403) * look for .tab file before .wld/.tfw GTX driver: * Add nodata support (#4660) HDF4 driver: * Skip "SceneLineNumber" table if present in the list of geolocation fields of ASTER L1A dataset. HDF5 driver: * add support for ODIM H5 georeferencing method (#5032) * set SRS GEOGCS in all cases (reverts r25801 and closes #4160) * support HDF5 NATIVE_SCHAR type, subdatsets without PAM (#5088) * release all opened handles so the file is closed at dataset closing (#5103) * better deal with dimensions of CSK-L1A HDF5 subdatasets (#4227) * avoid segmentation fault when H5Sget_simple_extent_ndims() returns negative value (#5291) HFA driver: * add minimally tested support for u2 and u4 data in basedata * use direct binning for thematic layers and real instead of integer for values (#5066) * add a HFA_COMPRESS_OVR config option to select whether to create compressed overviews (#4866) * fix rewriting of statics in existing HFA file where base data value is 8-bit (#5175) * implement re-writing existing histogram in HFA file, after raster editing (#5176) * avoid segfaults when creating a Imagine dataset with an invalid WKT (#5258) * expose color columns in RAT as Integer with values in range [0-255] instead of Real with values [0-1] (#5362) * report histogram column as GFU_PixelCount instead of GFU_Generic (#5359) * ensure histogram column written as float for HFA when using RAT API (#5382) Idrisi driver: * Improve coordinate system handling and min/max statistics (#4980) IRIS driver: * add height information on bands; rename dataset metadata item CAPPI_HEIGHT --> CAPPI_BOTTOM_HEIGHT (#5104) * IRIS: add support for two bytes data (#5431) JP2ECW driver: * fix problem with JP2 write with SDK v5 * fix issue with ECW_CLEVER optimization when nPixelSpace != sizeof eBufDataType (#5262) * avoid writing dummy GeoJP2 box when source dataset has no georeferencing (#5306) JP2KAK driver: * preliminary support for Kakadu V7.x * fix creation of unsigned int16 with reversible compression (#4050) * on Windows, use VSI cache for I/O by default, instead Kakadu own I/O layer * remove extension from 12bit to 16bit (#5328) JP2OpenJPEG driver: * avoid 'Empty SOT marker detected: Psot=12.' warning to be repeated several times * add support for encoding GCPs in a GeoJP2 box (#5279) * avoid writing dummy GeoJP2 box when source dataset has no georeferencing (#5306) JPEG driver: * add autodetection of bitmasks that are msb ordered (#5102) * avoid memory leak when GDALOpen'ing() a JPEG through a http:// URL, and make it possible to access its overviews * return YCbCrK raw data for YCbCrK JPEG in GDAL_JPEG_TO_RGB = NO mode (instead of CMYK as before) (#5097) * implement reading and writing of ICC profiles (#5246) * internal libjpeg: apply patch for CVE-2013-6629 * allow fallback to PAM to read GCPs * give priority to PAM GeoTransform if it exists and other source of geotransform (.wld, .tab) also exists (#5352) KMLSuperOverlay driver: * recognize an alternate structure for raster KMZ file made of a single doc.kml and tiles whose name pattern is kml_image_L{level}_{j}_{i}.{png|jpg} * fix horrible speed performance in Open() (#5094) * fix crash at dataset closing and inability to read some big PNG tiles (#5154) * fix to generate files validating against OGC KML 2.2 schema * put Style into conformity with ATC 7 * remove Region in root KML (ATC 41) * add NAME and DESCRIPTION creation options; read them back as metadata * add ALTITUDE and ALTITUDEMODE creation options * directly write into .kmz file (instead of in temporary location) * correctly write directories entry in .kmz file * add progress callback L1B driver: * report correct values for GCP (#2403) * report more GCPS than before * implement geolocation array * add fetching of record metadata in .csv file * add subdatasets with solar zenith angles, cloud coverage * recognize NOAA-9/14 datasets whose dataset name in TBM header is encoded in EBCDIC and not in ASCII (#2848) * support opening a few NOAA <= 9 datasets that have no dataset name in the TBM header LCP driver: * better handling of projections (#3255) * add CreateCopy() (#5172) MBTiles driver: * avoid failure when there's no tile at the center of the maximum zoom level (#5278) MEM driver: * Create(): use calloc() instead of malloc()+memset() for faster creation of huge in-memory datasets NetCDF driver: * fix to read netcdf-4 files with UBYTE data (#5053) * fix reading large netcdf-4 files with chunking and DEFLATE compression * fix netcdf chunking when creating file with > 2 dims ; add CHUNKING creation option (#5082 ) * fix duplicate nodata metadata when using CreateCopy() (#5084) * fix copying large metadata in netcdf driver (#5113) * fix netcdf geotransform detection (#5114) * fix netcdf driver irregular grids management (#5118 and #4513) * only call nc_close on a valid netcdf id when closing dataset * try and identify .grd (and .nc3) files in netcdf-4 format (#5291), so they are identified before the hdf5 driver NITF driver: * fix to support reading horizontal and/or vertical mono-block uncompressed images, even when the number of columns is <= 8192 (#3263) * update NITF Series list with new entries from MIL-STD-2411_1_CHG-3.pdf (#5353) * allow JP2KAK to be used as the JPEG2000 compression engine in the CreateCopy() case (#5386) PDF driver: * Avoid reporting a Poppler error as a GDAL error on some newer USGS GeoPDF files (#5201) * PDF writing: automatically adjust DPI in case the page dimension exceeds the 14400 maximum value (in user units) allowed by Acrobat (#5412) PDS driver: * Parse correctly MISSING_CONSTANT = 16#FF7FFFFB# as a IEEE754 single precision float expressed in hexadecimal; add support for ENCODING_TYPE = ZIP (data file compressed in a ZIP); recognize IMAGE_MAP_PROJECTION as an object included in UNCOMPRESSED_FILE object (#3939) PNG driver: * Implement reading and writing of ICC profiles (#5246) PostgisRaster driver: * Speed-up dataset opening (#5046). * Multi-tile multi-band caching added. * Smarter use of the information advertized in raster_columns view. * Avoid full table scan in situations without PKID/GIST indices. * Use of quadtree. Rasdaman driver: * caching of tiles for datasets with more than one band (#5298) * connections are now kept for a whole session (#5298) * fixing connection-string regex (#5298) * fixing possible memory leaks (#5298) Rasterlite driver: * fix resolution check typo in rasterlite driver Raw drivers: * implement GetVirtualMemAuto() (RFC 45) * IRasterIO(): add special behaviour to avoid going to block based IO when the dataset has INTERLEAVE=PIXEL and is elligible to direct I/O access pattern * allow direct I/O access even if a small proportion of scanlines are loaded (improve QGIS use case where the overview display will load sparse scanlines, which would prevent direct I/O at full resolution afterwards) * fix optimized RasterIO() when doing sub-sampling with non standard buffer pixel offset (#5438) RMF driver: * fix decompression of 24-bit RMF DEM (#5268) RPFTOC driver: * fix potential crash on some datasets when selecting the color palette (#5345) SAGA driver: * add read/write support for .prj files (#5316) SRP driver: * read TRANSH01.THF file to establish subdatasets (#5297) VRT driver: * Implement non-linear scaling with a power function (addition of Exponent, SrcMin, SrcMax, DstMin, DstMax sub-elements in ) * Preserve 64bit integer image offsets (#5086) * Make sure that VRTSourcedRasterBand::AddMaskBandSource() takes into account specified window (#5120) * Make GDALAutoCreateWarpedVRT() return NULL when GDALSuggestedWarpOutput() fails * VRTDataset::IRasterIO(): use source DatasetRasterIO even if band count is 1 * VRTWarped: avoid setting up relative paths for things that aren't file-like * make relativeToVRT=1 work with NITF_IM:, NETCDF:, HDF5:, RASTERLITE: WCS driver: * ensure C locale is enforced before parsing floating point values WMS driver: * accept 'WMS:http://server/?SRS=EPSG:XXXX' syntax to select the preferred SRS in which to fetch layers * CPLHTTPFetchMulti(): avoid doing a timeout-only select when there are no file descriptor to wait on (can happen when doing a file:// URL) * allow cache location to be specified with GDAL_DEFAULT_WMS_CACHE_PATH configuration option if not provided in the XML (#4540) * Update to be able to understand slight changes in formatting of JSon output of ArcGIS mapserver protocol XYZ driver: * accept datasets that have missing values at beginning and/or end of lines, such as MNT250_L93_FRANCE.XYZ * fix detection when there are only integral values with comma field separator * reopen with 'rb' flags for Windows happyness == OGR 1.11.0 - Overview of Changes == Core: * GEOS support: require GEOS >= 3.1.0 and use the _r API of GEOS to avoid issues with the global GEOS error handlers * exportToWkb(): ISO WKB generation with wkbVariant option (#5330) * geocoding: when getting several answers from server for a query, report geometries on second, third, etc.. feature, and not only first one (#5057) * allow auto loading of drivers to be disabled via config option * remove obsolete OGRGeometryFactory::getGEOSGeometryFactory() * OGRGeometryFactory::organizePolygons() in DEFAULT method: fix a case with 2 outer rings that are touching by the first point of the smallest one * OGRGeometryFactory::organizePolygons(): optimization in ONLY_CCW case * OGRGeometryFactory::organizePolygons(): Add an experimental mode : CCW_INNER_JUST_AFTER_CW_OUTER * OGRLineString::segmentize() : don't set 0 as z for interpolated points, but the z from the previous point * OGRLineString::setNumPoints() : add an optional argument to avoid zeroizing the arrays * Add OGRLineString::setZ() * Add OGRLineString::Project() and OGRLineString::getSubline() * OGRPolygon: add stealExteriorRing() and stealInteriorRing(int iRing) * OGRLinearRing::isClockwise(): optimizations and make it work in a degenerated case when a vertex is used several times in the vertex list (#5342) * OGRLinearRing::isPointOnRingBoundary() : optimizations and take into account bTestEnvelope * Add OGR_G_SetPointCount and OGR_G_SetPoints functions to API C (#5357) * OGREnvelope3D::Contains(): fix incorrect test * Layer algebra: fix handling of method field mapping to output fields when output fields are precreated (#5089) * Layer algebra: when an error condition is skipped, call CPLErrorReset() (#5269) * OGRLayer::GetFeature(): make sure that the behaviour is not influenced by attribute or spatial filters in the generic implementation; upgrade OGDI, PG, MySQL, MSSQLSpatial, OCI, SDE, PGeo, ODBC, WALK, IDB, SQLite and Ingres driver (#5309) * introduce OGRLayer::FindFieldIndex() / OGR_L_FindFieldIndex() to lookup potentially laundered field names (RFC 42) * OGR SQL: upgrade to support RFC 41 (multiple geometry fields) * OGR SQL: more stricter checks * OGR SQL: make parsing error report a usefull hint where the syntax error occured * OGR SQL: fix thread-safety of swq_op_registrar::GetOperator() (#5196) * OGR SQL: support not explicitely specifying AS keyword for aliasing a column spec * OGR SQL: don't call CONCAT(a_column ...) or SUBSTR(a_column ...) as a_column * OGR SQL: validate that arguments of MAX, MIN, AVG, SUM, COUNT are columns and not any expression since this is not supported * OGR SQL: make AVG field definition a OFTReal * OGR SQL: implement MIN(), MAX() and AVG() on a date (#5333) * OGR SQL: fix SELECT * on a layer with a field that has a dot character (#5379) * SQL SQLITE dialect: Make it available to all OGR drivers that have a specialized ExecuteSQL() implementation OGRSpatialReference: * Upgrade to EPSG 8.2 database * identify LCC_2SP instead of LCC_1SP if lat_0==lat_1 and lat_2 is present (#5191) * add a variety of linear units to proj4 parsing (#5370) * Fix crash in CleanupESRIDatumMappingTable() if it is called twice (#5090) * fix order of AXIS and UNIT nodes in a VERT_CS node (#5105) * ecw_cs.wkt: add missing TOWGS84[-168,-60,320,0,0,0,0] to NTF datum (#5145) * fix OGRSpatialReference::importFromProj4() to work with non-C locale (#5147) * morph central_latitude to latitude_of_origin in morphFromESRI() (#3191) * OGRProj4CT: avoid using proj when the 2 projections are actually identical (#5188) * add sanity checks in OGR_SRSNode::importFromWkt() (#5193) * VERT_CS: when importing from proj.4 put AXIS node after UNIT; COMPD_CS: when importing from EPSG:x+y, set a more meaningfull name for the COMPD_CS node * OGRSpatialReference::Validate() : in addition to hand-validation, use WKT grammar from OGC 01-009 CT * preserve authority when importing +init=auth_name:auth_code (e.g. +init=IGNF:LAMB93) Utilities: * ogrlineref: new utility to deal with linear geometries. * ogrinfo: upgrade to support RFC 41 (multiple geometry fields) * ogr2ogr: upgrade to support RFC 41 (multiple geometry fields) * ogr2ogr: bump default value for -gt from 200 to 20000 (#5391) * ogr2ogr: add -addfields option to add new fields found in a source layer into an existing layer ; add -unsetFieldWidth option to unset field with and precision; add -dim layer_dim option to force the coordinate dimension of geometries to match the one of the layer geometry type * ogr2ogr: Check that -t_srs is also specified when -s_srs is specified * ogr2ogr: add an explicit error message to report FID of feature that couldn't be inserted when CreateFeature() fails * ogr2ogr: make relaxed lookup optional and add a switch -relaxedFieldNameMatch to allow it (RFC 42) * ogr2ogr: make sure that the progress bar reaches 100% when converting OSM * ogr2ogr: make sure that target dataset is properly closed when a CreateFeature() fails (so that truncated shapefiles have their header file properly updated) * ogr_dispatch.py: Sample Python script to dispatch features into layers according to the value of some fields or the geometry type * ogrinfo.py: sync with ogrinfo (RFC 41) * ogr2ogr.py: port -nlt PROMOTE_TO_MULTI option from ogr2ogr.cpp (#5139) CSV driver: * avoid erroneously reset of file content when opening in update mode a file without header (#5161) * upgrade to support RFC 41 in read/write (multiple geometry fields) * allow backslash doublequote to load (#5318) DGN driver: * DGN writing: added polygon inner ring (holes) writing and MSLink writing (#5381) DXF driver: * fix writing of 25D linestring where z is not constant (#5210) * fix writing of POLYLINE objects (#5217, #5210) * accept reading files starting with a TABLES section (#5307) * support reading 3DFACE and SOLID (#5380) entities * fix an error when processing clockwise circle arc (#5182) * avoid building an invalid polygon when edges cannot be reassembled: turn it into a multilinestring * use CPLAtof() instead of atof() to avoid issues with locales * fix linear approximation of circular and elliptic arc in HATCH boundaries (#5182) DWG driver: * add support for reading AcDb3dPolyline (#5260) * fix linear approximation of circular and elliptic arc in HATCH boundaries (#5182) FileGDB driver: * implement IgnoreFields API to speed-up a bit the conversion of a sub-set of fields when there's a huge amount of them (e.g. Tiger database). * when writing of an attribute, use size in bytes (#5192) * implement ref counting of the FileGDB SDK API' Geodatabase* object to avoid issues on Linux 64bit with interleaved opening and closing of databases (#4270) * honour update flag to determine which operations are allowed or not * add a driver global mutex to protect all calls as the FileGDB API SDK is not thread-safe at all * add a COLUMN_TYPES layer creation option to override default column types; support reading/writing XML column types * optimize GetFeatureCount() and GetExtent() when there are filters set * set the default width for string fields to 65536. The width can be configured with the FGDB_STRING_WIDTH configuration option * fix creation and writing of Binary fields; enable reading * add a CREATE_MULTIPATCH creation option FME driver: * fix Linux compilation GeoJSON driver: * recognize alternate formats such as the ones of https://code.google.com/p/election-maps/ * add read support for TopoJSON * upgrade internal libjson-c to json-c 0.11 (#4676) * report integer values that are int64 as strings * add 3d support to esri geojson reader (#5219) * be less strict on looking for esri field type tag (#5219) * fix sometimes incorrect result (significant digit losts...) when using -lco COORDINATE_PRECISION=0 * fix handling of huge coordinates when writing (#5377) GeoRSS driver: * advertize OLCCreateField capability GFT driver: * switch http to https for the oauth2 link to improve security GML driver: * add support for multiple geometry columns (RFC 41) * add support for reading Finnish National Land Survey Topographic data (MTK GML) * add support for support Finnish NLS cadastral data and Inspire cadastral data. * add support for Czech RUIAN VFR format * add data/gml_registry.xml file to associate feature types with schemas. * extend .gfs syntax to be able to fetch OGR fields from XML attributes. * extend .gfs syntax to support multiple geometry columns, and define a geometry property name * autodiscover all XML attributes as OGR fields when creating .gfs file if GML_ATTRIBUTES_TO_OGR_FIELDS is set to YES (#5418) * allow the in .gfs to have several components that give the full XML path * fix writing of .xsd file to avoid fid/gml_id being written as regular fields (#5142) * fix writing of global srsName attribue on the global boundedBy.Envelope when all layers have same SRS (#5143) * support for writing .gml/.xsd with fields of type StringList, RealList, IntegerList and support for parsing such .xsd files * when writing .xsd for a datasource that has fields of type StringList, RealList or IntegerList, advertize SF-1 profile in the .XSD schema * recognize xsd:boolean in XSD parsing and map it to String (#5384) * add STRIP_PREFIX and WRITE_FEATURE_BOUNDED_BY dataset creation option to help minimizing the size of GML files * don't write top in GML files with multiple layers of different SRS * fix segfault when reading a GML file with huge coordinates (#5148) * avoid opening our own .xsd files as valid datasources (#5149) * make driver thread-safe with Xerces * open successfully GML datasources with 0 layers (#249, #5205) * fix tweaking of DescribeFeatureType requests * support reading WFS 2.0 GetFeature documents with wfs:FeatureCollection as a wfs:member of the top wfs:FeatureCollection * fix for crash on certain xlink:href with GML_SKIP_RESOLVE_ELEMS=NONE (#5417) * GML geometry: fix duplicated points in GML_FACE_HOLE_NEGATIVE=YES mode (TopoSurface) (#5230) * GML geometry: accept CompositeSurface as a child of surfaceMembers (#5369) * GML geometry: join multilinestrings to linestrings in rings * GML geometry: correctly deal with MultiSurface of Surface of PolygonPatch where a PolygonPatch has only interior ring(s) and no exterior ring (#5421) * GML geometry: accept formulations of 'MULTIPOINT EMPTY, MULTILINESTRING EMPTY, MULTIPOLYGON EMPTY and GEOMETRYCOLLECTION EMPTY that are valid GML 3 (and accepted by PostGIS) * GML geometry: make use of cs, ts and decimal attributes of (deprecated) gml:coordinates element * GML geometry: accept XML header and comments GPX driver: * advertize OLCCreateField capability ILI driver: * add support for multiple geometry columns (RFC 41) * use IlisMeta model reader/writer instead of IOM * add layers for surface and area geometries KML driver: * output KML that validates the ogckml22.xsd schema by placing elements under the level (#5068) * in writing mode, avoid defining an extending schema for the name and description fields (related to #5208) LIBKML driver: * various checks, fixes and improvements related to OGC KML 2.2 Abstract Test Suite * add support for reading as a LINESTRING (#5095) * add support for writing and reading * add support for writing atom:author, atom:link, phonenumber, Region, ScreenOverlay, 3D model, StlyeMap * add support for reading and generating Camera object * add layer creation options to generate a LookAt element at layer level * if UPDATE_TARGETHREF dataset creation option is defined, a NetworkLinkControl/Update document will be created * add dataset creation options to generate a NetworkLinkControl element * add dataset and layer creation options LISTSTYLE_ICON_HREF and LISTSTYLE_TYPE * add support for writing a NetworkLink * add support for creating PhotoOverlay objects * add support for creating BalloonStyle elements * offer LIBKML_USE_SIMPLEFIELD configuration option can be set to NO to use Data element instead of SimpleField * add layer creation option FOLDER to optionally write layers as Folder instead of Document * add dataset and layer creation options NAME, VISIBILITY, OPEN, SNIPPET and DESCRIPTION * workaround bugs in pretty serializers * when writing a .kmz file, put layers .kml docs into a layers/ subdirectory * fix mem leaks, and use after free in kml2FeatureDef() (#5240) * create document with default namespace set to http://www.opengis.net/kml/2.2 * when writing, consider empty strings as unset (usefull when converting from CSV) * don't write empty