Version 3 (modified by warmerdam, 12 years ago) (diff)


GDAL/OGR 1.7.0

ALERT: The GDAL/OGR 1.7.0 release has been discovered to have a serious bug which results in all Erdas Imagine files (HFA driver) being generated in a way that is unreadable by non-GDAL software. Due to this bug, the GDAL/OGR project has retracted the 1.7.0 release, and has issued it's replacement with the 1.7.1 bug fix release. See for details.

Some of the bugfixes mentioned below might also have gone into 1.6.X maintenance releases.

In a nutshell…

  • New GDAL drivers : BAG, EPSILON, Northwood/VerticalMapper?, R, Rasterlite, SAGA GIS Binary, SRP (USRP/ASRP), EarthWatch? .TIL, WKT Raster
  • GDAL PCIDSK driver using the new PCIDSK SDK by default
  • New OGR drivers : DXF, GeoRSS, GTM, PCIDSK and VFK
  • New utility : gdaldem, gdalbuildvrt now compiled by default
  • Add support for Python 3.X. Compatibility with Python 2.X preserved (#3265)
  • Remove old-generation Python bindings.
  • Significantly improved GDAL drivers: GeoRaster, GeoTIFF, HFA, JPEG2000 Jasper, JPEG2000 Kakadu, NITF
  • Significantly improved OGR drivers: CSV, KML, SQLite (SpatiaLite? support), VRT
  • WARNING: incompatibility between MrSID GeoDSDK and libgeotiff 1.3.0 or internal libgeotiff on some platforms (see #3309)

GDAL/OGR 1.7.0 - General Changes

Build (All) :

  • Add gdalbuildvrt to the list of utilities built by default (#2747)
  • Improve Mingw compatibility (#2649)
  • Add Expat read support for GML driver when Xerces is unavailable (#2999)
  • Fix GML and ILI reading problems with Xerces 3.x (#3156)
  • Add 8/12bit JPEG-in-TIFF support
  • Fix trunk compilation against libdap 3.9.X (#3105)

Build (Windows) :

  • Check for CURL_LIB instead of CURL_DIR
  • ensure OGR_ENABLED gets defined if INCLUDE_OGR_FRMTS set (#2784)
  • Change quoting in VCDIR and SETARGV to avoid likely problems.
  • added dll and target-lib targets
  • fix _findfirst handle type for win64 (#3035)
  • Add support to compile OGR-postgis as a plugin (#3125)
  • Trap failures in subdirectories and stop build

Build (Unix) :

  • Use proper object file names when building prerequsites lists (#1878)
  • Updated man page generation
  • Add new ./configure test to check that the GCC 4.1 built-in functions for atomic memory access are really available
  • Handle external libz (#2942)
  • Add support for 64bit file i/o on BSD systems, through fseeko/ftello
  • Add support for linking against libspatialite to benefit from spatial functions in SQL queries (#2666)
  • Fix support for --with-threads configure option on BSDs (tested on DragonFlyBSD 2.2.1)
  • Add support for autodetection of ogdi 3.2 in ./configure (#3007)
  • Remove additional dependency to added during linking in gdal/apps (#2970)
  • Improved ax_oracle_oci.m4 macro to handle libnnzXX for Oracle 10 and 11.
  • support using the Oracle Instant Client SDK
  • Make --with-ingres work with newer versions (#3126)
  • Search for alternative HDF4 flavor in HDF4 testing macro. Alternative HDF4 (libmfhdfalt/libdfalt) build is NetCDF-compatible and used in Debian.
  • Support MacOSX "fat" binary building

Port :

  • Provide API and implementation for thread and SMP safe atomic increments (#2648)
  • Add /vsisubfile virtual file driver
  • Added gzip write implementation
  • VSI ZIP : Allow natural chaining of VSI drivers without requiring double slash
  • Add a shortcut when looking for .csv files that are already open
  • Add CPLSetThreadLocalConfigOption()
  • Add CPLIsUTF8() and CPLForceToASCII(); Use them in GML, KML, GPX and GeoRSS drivers (#2971)
  • Add CPLStrlcpy() and CPLStrlcat(), clones of BSD strlcpy() and strlcat() functions
  • Add CPLStrnlen()
  • Add CSLLoad2() and CPLReadLine2L() with max number of lines and chars per line allowed
  • cplkeywordparser.cpp: Support parsing IMD files with values of the form list of lists
  • odbc: Fixed the null terminators for columns of length (x*511)+1, where x>1. (#2727)
  • unix VSIF*L : reworked to avoid unnecessary seeks which can be expensive
  • added HTTPAUTH and USERPWD options for http fetch (#3091)

GDAL 1.7.0 - Overview of Changes


  • cutline : optimize by clipping cutline to region of interest (#2736)
  • cutline : avoid scanline to scanline blending problems (#2740)
  • rasterfill : substantially reworked
  • rasterfill : deprecate bConicSearch option - unused
  • rasterize : optimized
  • rasterize : Added GDALRasterizeLayersBuf() function to rasterize geometries directly

into the supplied raster array.

  • rasterize : Add ALL_TOUCHED rasterize option (#2840)
  • rasterize : Added 3D support for rasterizing points and lines. (#3202)
  • rasterize : correct case of vertical/horizontal lines on raster right/bottom edge (#3268)
  • Added GDALCreateGenImgProjTransformer3() function
  • warp: Reduce destination file size, especially when it has compression (#1688)
  • warp: Fix crash when reprojecting to irrelevant SRS (#3079)
  • warp: avoid using the destination nodata value for integer datatypes (#3142)
  • warp: fix panDstValid generation, and avoid using it improperly (#3222)
  • warp: Restore support of reprojection of a lat-long image crossing 180E/180W longitude (#3206)
  • contour: Fix name of GDAL_CG_Create in contour.cpp (#2795)
  • contour: Generate contours with correct orientation (#3129)
  • gdalgeoloc: Improve geoloc backmap interpolation (#2501)
  • overview: added support for cubic convolution overviews
  • gdal_grid: 3 new metrics: data point count, average distance between data points

and a grid node, average distance between data points.

  • gdal_grid: Properly cast the poOptions parameter in data metrics computation functions. (#3207)

Core :

  • Added mechanism to clear overviews if zero overviews requested. Implemented by GTiff and HFA drivers (#2915)
  • Support for overviews in subdatasets
  • Support for overviews in proxydb directory (#2432)
  • SetColorTable?(NULL) is permitted and means delete (#2421)
  • Preserve NBITS and SIGNEDBYTE in CreateCopy?() for supporting drivers (#2902)
  • GDALCopyWords() : performance optimizations
  • Add GDALCheckDatasetDimensions() and GDALCheckBandCount()
  • Add GDALGetColorInterpretationByName()
  • Use tiff .ovr for overviews if .aux is just metadata (#2854)
  • Add missing argument in function declaration for GDALRATTranslateToColorTable()
  • Do not use colortable for bit2grayscale overviews (#2914)
  • Support world files with blank lines (ESRI Merge)
  • Add worldfiles in GetFileList?() (ESRI Merge)
  • Fix rpb/imd loading with a path (#3047)
  • Add support for using overviews in GDALDataset::BlockBasedRasterIO() (#3124)
  • Take into account SIGNEDBYTE for GetStatistics?() & GetHistogram?() (#3151)
  • Add GDALReadOziMapFile() and GDALLoadOziMapFile() to read projection and georeferencing information from OziExplorer? .MAP files.
  • Added declarations for GDALLoadTabFile() and GDALReadTabFile()
  • Add missing case for CInt16 and CInt32 in GDALNoDataMaskBand and GDALNoDataValuesMaskBand

Utilities :

  • gdaldem: new for GDAL/OGR 1.7.0 (#2640)
  • gdalinfo:
    • add -norat switch
    • do not report RPC or GEOLOCATION metadata with -nomd
    • Use pretty wkt to display GCP projection
  • gdalwarp:
    • fix cutline blend distance setting (#2733)
    • in -te case, adjust the resolution after computing the image dimensions
    • improved cutline support (#2733, #2847, #2884, #2984)
    • avoid overwriting an existing destination file that cannot be opened in update mode with a new GTiff file
    • better heuristics to guess output extent when projection from lat/long world extent to other world global projections (#2305)
  • gdaltindex:
    • Avoid unnecessary error message in gdaltindex when creating a new shapefile (#2779)
    • Rewritten to use OGR API instead of ShapeLib? API, so as to produce .prj files more easily (#982)
  • gdal_contour:
    • make -3d option work even after -fl option (#2793)
    • Call GDALGetProjectionRef() on the dataset, not the raster band (#3062)
  • gdalbuildvrt:
    • Add -separate, -allow_projection_difference, -te, -tr, -q, -addalpha options
    • Add -srcnodata and -vrtnodata options (#3254)
    • Add -hidenodata option (#3327)
    • Avoid accidental overwriting of a non VRT dataset due to revered filename order
    • Fix -resolution lowest/highest (#3198)
  • gdaladdo: add -clean option (#2915)
  • gdaladdo: add -q option
  • gdal_grid: Add support for spatial filtering with -clipsrc option
  • gdal_translate: support translation of a dataset with subdatasets if the parent has bands
  • gdal_translate: Add 'gray' as a value of -expand rgb option
  • gdal_translate: Add -unscale commandline option
  • Add progress report
  • Fix -separate case (#2836)
  • Write the <SourceProperties?> element (#1985)
  • add lanczos resampling (#2859)
  • ensure dstfile support works by copying source (#2866)
  • GDAL2Tiles: --srcnodata support + fixed KML rendering for -p raster
  • Added ability to use a preexisting color table from a file (#2958)
  • and : Copy the GCPs and their projection to the target dataset.
  • Fix order of args to numpy.ones() and numpy.zeros() (#3089)
  • New sample script to greyscale as intensity into an RGB image,

for instance to apply hillshading to a dem colour relief.

  • support filename globbing for various Python scripts (#2783)
  • --formats will add 'v' in report on drivers that support virtual io
  • all utilities and scripts : consistently advertize -q as the official quiet

option, but accept both -q and -quiet (#3820)

Changes in various drivers :

  • Implement support for overviews on subdatasets for HDF4, HDF5, NetCDF, NITF, XPM, TERRAGEN, PCIDSK (#2719)
  • Add support for 64bit offsets in /vsisubfile, JPEG and JP2ECW drivers
  • External overviews support added to some drivers (JDEM, ...)
  • Avoid incorrect GEOGCS AXIS settings (#2713)
  • Use GDALCheckDatasetDimensions() and GDALCheckBandCount() in various drivers
  • Many memory leak fixes (HDF5, HKV, Leveler, MFF, NITF, RMF, JPEG2000, WCS ... drivers)
  • Many fixes to improve robustness against corrupt data in many drivers
  • Error out when trying to open a read-only dataset in update mode (#3147)
  • Ensure that the same JPEG2000 driver that has been used with CreateCopy?() is used to re-open it (#1596)

ADRG driver:

  • Support PSP != 100 (#3193)

AIG driver:

  • Differ opening of the RAT only when GetDefaultRat?() is called. Will improve performances and make less likely the error message of #3031

AAIGRID driver:

  • Fix bad reading of AAIGRID dataset whose last line doesn't have a linebreak character (#3022)
  • Make the ArcInfo? ASCII driver more Mac-compatible. (#3212)

BAG driver :

  • New for GDAL/OGR 1.7.0

BLX driver:

BMP driver:

  • Modify GetGeoTransform?() to return geotransform based on the resolution information in the BMP header if nothing else is available (ESRI merge).
  • use pam functions properly for geotransform when not using world file

BSB driver:

  • Fix several issues with BSB files reading (#2782)
  • Handle properly more than 256 GCPs (#2777)
  • Add logic to chip GCPs around to avoid split over dateline problems (#2809)
  • Add logic to reproject GCPs into Mercator for mercator projected images.

DTED driver:

  • Re-enable DTED driver to recognize files not starting by a UHL record (#2951)

ECW driver:

  • Enable the JP2ECW driver to open JP2 files with the VSILAPI
  • Fix build with MSVC2008 (#2850)
  • Fix memory overwrite while zooming an ECW image (#2934)
  • Speed-up de-registeration of the driver that can take up to 3 seconds (#3134)

EHDR driver:

  • Add color table update. Add limited support for floating point files (.flt) (ESRI Merge)
  • added support for SIGNEDBYTE pixels (#2717)
  • Restructure stats handling so pam capture works right when stx write fails
  • improve a bit .clr reading (#3253)

ENVI driver:

  • Move RPC info into the RPC domain (#3063)
  • Converted to using VSI Large File API (#3274)
  • re-enabled complex support (#3174)

EPSILON driver:

  • New for GDAL/OGR 1.7.0
  • Mainly used coupled with Rasterlite

ERS driver:

  • Added PIXELTYPE support to report/create SIGNEDBYTE (#2902)
  • Give precidence to PAM SRS, and even check for .aux file. (ESRI Merge)

FAST driver:

Fujibas driver:

  • Fix to work on big-endian hosts

GenBin? driver:

  • Implemented custom class for 1bit (U1) files (#2730)
  • Fix inverse flattening computation (#2755).
  • Added U2 and U4 support
  • Look for LSB, assuming MSB if not found (#2730)

GeoRaster driver:

  • Fix compression problems
  • Add MaskBand? support
  • Support UNICODE metadata
  • Support cross database schema/user access
  • add COORDLOCATOR create option

GeoTIFF driver :

  • Add 8/12bit jpeg in tiff support
  • Add support for creating external BigTIFF overview files, with BIGTIFF_OVERVIEW configuration option. (#2785)
  • Add support for deleting a color table (#2421)
  • Add logic for Imagine citation parsing
  • Add logic for encoding and reading ESRI PE string from citation.
  • Add support for reading and writing vertical datum info from geotiff
  • Changes to units handling. (#2755)
  • Optimize opening speed by defering fetching the coordinate system till GetProjectionRef? (#2957)
  • Optimize GTiffRasterBand::IReadBlock() for multi-band interleaved case.
  • Avoid uncesserary re-writting the TIFF directory (#3021)
  • Use official value for inverse flattening of the WGS84 ellipsoid (#2787)
  • Add metadata domain for XML documents (#2786)
  • Make GTiff driver friendly with files with huge number of bands and pixel interleaving (#2838)
  • Avoid precaching other bands if block cache size is not big enough to accomodate them (#2838)
  • Internal libtiff (4.0.0beta5) and libgeotiff (1.3.0beta) upgraded
  • use the SetCitationToSRS call for the PCSCitationGeoKey in a similar fashion to the GTCitationGeoKey (#2933)
  • NBITS set for GTiffOddBits. YCbCr JPEG added as a compression type. generate MINISWHITE IMAGESTRUCTURE metadata item. Set missing blocks to the nodata value if there is one. (ESRI Merge)
  • Support GeoTIFF with only ProjectedCSTypeGeoKey defined (#3019)
  • External overviews: try to preserve the bit depth of the original image
  • Allow reading and creation of big all-in-one-strip 8bit TIFF (#3094)
  • Handle projection methods for Google Mercator special case (#3217)

GFF driver :

  • Fix support for big endian host (#2832)
  • Add pam, and overview support. Switch to VSI*L API to support virtualio (#3014)

GIF driver :

  • Introduced a BIGGIF driver to handle GIF files without using the slurp into memory approach. (#2542)
  • CreateCopy?() reports now progress
  • Replace internal libungif by giflib-4.1.6 (#1825)
  • Read projection and georeferencing from OziExplorer? .MAP file if possible.

GRASS driver:

  • Add support for GRASS 7.0 GDAL and OGR plugins (#2953)
  • Use GRASS_GISBASE for GDAL GRASS driver instead of hard-coded path (#2721)

GRIB driver:

  • only scan for PDS templates in GRIB2 files (#2858)
  • Avoid dumping GribLen? debug message if built with -DDEBUG.
  • Remove verbosity from GRIB driver (#2887)
  • Make GRIB detection thread safe (#3209)
  • Check that bands have the same dimensions (#3246)

GS7BG driver:

  • Recognize version 2 datasets (#3123)

HDF4 driver :

  • Allow HDF4 subdataset name to include Windows letter drive (#2823)

HDF5 driver :

  • subdatsets need to be numbered from 1 not 0 (#2462)
  • Block size recognition. (#2270)
  • Fix initial value for nGCPCount in HDF5ImageDataset (#2774)
  • Fixes to type classification, and to avoid listing subdatsets for unsupported pixel data types (#2941)
  • Mark PAM for not saving .aux.xml files at this level. Directly open subdatasets in HDF5Dataset::Open() if there is only one subdataset.

HFA driver:

  • Support reading and evaluating 3rd order xforms (#2716)
  • Various improvements to SRS support, particularly to preserve PE compatability. (#2755)
  • Added HFAEntry::RemoveAndDestroy?() method to remove nodes from tree (#2421)
  • Added support for deleting color tables (#2421)
  • Add a scaled progress monitor for HFADataset::IBuildOverviews()
  • Fix HFA u2 compression/decompression (ESRI merge)
  • Add support for reading compressed s8 HFA (#3152)
  • Defer opening overviews till they are first requested (#3155)
  • Support multiple excluded values (#3252)
  • added a variety of additional coordinate system based types missing in some files (#3262)
  • Various fixes (#2421, #2842, #2755, #3082, #2730)

Idrisi driver:

  • Writing text file in CRLF format (#3199)
  • forward porting esri changes + other changes
  • provide default values on Create() (#3243)

INGR driver:

  • Fix INGR driver that was failing on big endian hosts (#2898)
  • Fix RLE support (#3106)
  • Added overview building (#2904)

JPEG driver:

  • Enable the JPEG driver to read and create 12bit JPEG images when JPEG12_ENABLED=yes
  • Internal libjpeg: additional changes to ensure operation with IPP enabled apps (#2606,#2845)
  • JPEG read optimizations : differ extraction of EXIF metadata and internal maskband

JPEG2000 (JasPer) Driver:

  • Allow proper reading of JP2 images where dimensions are not multiple of 256 (#2399)
  • Add a virtual I/O interface to able to read from/write to JPEG2000-NITF files
  • Do not deregister jas_image_clearfmts() to avoid failure when gdal_translat'ing from JP2 streams
  • Add proper reading of YCbCr images as RGB
  • fix decoding of bit depth for BPCC and PCLR boxes

JP2KAK (Kakadu) Driver :

  • Fix band selection from ycbcr to rgb converted images in DirectRasterIO (#2732)
  • Support jpc vsisubfile streams
  • add handling of reversibly compressed data with 9 to 16 bits precision (#2964)
  • Modify transfer_bytes() buf32 case to offset/scale based on precision. (#2964) Fixed _WriteTile() lossless 16bit case to avoid improper 32K offset. Added support for NBITS image structure metadata, and creation option.
  • Added logic to limit tiles to 64K due to jpeg2000 limitation. (ESRI Merge)
  • Fix offseting of 16U buf32 data (#3027)
  • Support 16u/16s imagery through DirectRasterIO interface (#3049)
  • Support external overviews as an override to internal overviews
  • Rework jp2kak support to use natural kakadu builds (Windows build)
  • ensure external overviews get used if available (#3276)
  • add preliminary multi-threading read support via DirectRasterIO()

LAN driver:

  • Give preference to PAM coordinate system since built-in info is very limited. Fallback to PAM geotransform if internal missing. (ESRI Merge)

LCP driver:

  • Add projection file support (#3255)

MEM driver:

  • Allow creating bands of more than 2GB each if size_t is large enough.
  • Added GetInternalHandle?() implementation to fetch band memory buffer

MrSID driver:

  • Implement faster resampling for 1:1 case
  • Improve stream implementation so it works for jp2 with v7
  • Make the JP2MrSID driver accept .ntf extension to allow reading jpeg2000 datastream in NITF files
  • Avoid reporting large metadata objects. Add MG version to metadata.

NetCDF driver:

  • Fix handling of pixel validity mask (#3112)
  • correct a problem with 5+ dimensional data access (#2583)
  • fix y flip detection in common case (#2654)
  • add support for subdataset names with Windows full path names, like NETCDF:D:\...

NITF driver:

  • Add support for reading & creating large (>4GB) NITF files.
  • Add support for NITF/JPEG2000 overviews (JP2KAK)
  • Add support for reading & creating 12bit JPEG compressed NITF files when JPEG12_ENABLED=yes
  • Add support for creating a NITF file with many bands and big TRE content
  • Add support for creating several uncompressed images in a NITF file (#2989)
  • Add support for creating M3 (masked multi-block JPEG compressed) images
  • Add support for unpacking a wider variety of pixel depths.
  • Add support for overriding IGEOLO with GEOLOB TRE precision georef (#3180)
  • Add support for for CFloat32 reading & writing (#2526)
  • Add support for reading and writing NITF file with large single block (#3263)
  • Allow Jasper driver to be used for NITF IC=C8 (JPEG2000) CreateCopy?() if JP2ECW is not available
  • Allow JP2MrSID driver to be used for reading JPEG2000 datastreams in NITF
  • Avoid issues when reading M3 single block images
  • Fix CreateCopy?() of multi block JPEG-NITF
  • Various bugfixes (#2940, #2912, #3029, #3088)
  • Support NITF file with a color table and JPEG2000 data content (#3110)

NWT_GRC / NWG_GRD drivers (Northwood/VerticalMapper?) :

  • New for GDAL/OGR 1.7.0

OGDI driver:

  • improve finding of PROJ.4 include files for OGDI (#1242)

PCIDSK driver (old driver):

  • Added worldfile reading. Added PAM fallback for geotransform.
  • Added support for default overviews (ie. .ovr or .rrd). (ESRI Merge)
  • fail somewhat gracefully on compressed images

PCIDSK driver (new driver):

  • New for GDAL/OGR 1.7.0, using the PCIDSK SDK

PDS driver:

  • Transfer various keywords to metadata
  • Made keyword handler more in complaint with ODL (#2956)
  • Support detached files with an offset (#3177)
  • Support .LBL labelled compressed files

PNG driver :

  • Upgrade internal libpng to 1.2.35
  • Only write a world file if the source datasource has a geotransform
  • Allow writing a nodata value of 0 as the transparent color value (#3208)

R driver:

  • New for GDAL/OGR 1.7.0

Rasterlite driver

  • New for GDAL/OGR 1.7.0

RIK driver:

  • Improved error checking

SAGA GIS Binary driver:

  • New for GDAL/OGR 1.7.0

SDE driver :

  • Fix exporting ArcSDE raster results in a displaced image (#2063)

SRP driver (ASRP/USRP):

  • New for GDAL/OGR 1.7.0

SRTM driver :

  • Set GDALMD_AOP_POINT metadataitem (#1884)

TIL driver (EarthWatch? .TIL) driver:

  • New for GDAL/OGR 1.7.0

VRT driver :

  • Honour the INIT_DEST warp option (#2724)
  • Improve performance of LUTs in VRTComplexSource from O(n) to O(log2(n)) (#3003)
  • Implement (advertized in doc) support for SetMetadataItem?( "source_0", szFilterSourceXML, "vrt_sources" ) on a VRTSourcedRasterBand (#3052)
  • Implement GetFileList?() to list the source files
  • Fix wrong initialization of destination buffer in VRTSourcedRasterBand::IRasterIO() in case of not standard pixel/line spacing. (#2867)

WCS driver:

  • do not try to parse HTML content, which is returned by some provider when the server doesn't exist
  • added HttpAuth? and UserPwd? options for authentication (#3091)

WKT Raster driver:

  • New for GDAL/OGR 1.7.0

WMS driver:

  • Support TMS/formatted URLs in WMS minidriver (#2878)
  • Be tolerant if we have required 3 bands and got 4, or the other way round
  • Declare a user agent string

OGR 1.7.0 - Overview of Changes


  • ogrinfo: Preserve order of source layers specified on ogrinfo command line,

and use GetLayerByName?() which enables to read some hidden layers like public.<table> layers from a PG database (#2922, #2026)

  • ogr2ogr:
    • Add -clipsrc and -clipdst option to clip geometries to the specified extents
    • Add -fieldTypeToString option to conveniently cast any fields of given type to fields of type string (#2968)
    • Add -progress option for ogr2ogr to displaying progress (#2998)
    • Add -wrapdateline option to ogr2ogr to deal with geometries that cross 180 degree longitude (#3158)
    • Add -dialect flag to specify SQL dialect
    • Preserve order of source layers specified on command line (#2922)
    • -overwrite and -append now automatically imply -update (#3048)
    • Support converting to a format after field name "laundering" (#3247)
  • ogrtindex:
    • Skip layers whose schema does not match instead of terminating (#3141)
    • Add a -accept_different_schemas option for non-MapServer? use cases (#3141)
    • Set SRS to tileindex when one is found in the tiles
  • : new script that will create a VRT corresponding to a source datasource (sample script for the moment, not promoted officially)

Core :

  • Improved OGR feature style (#2875, #2808)
  • Considerable speed-up of ExportToWkt?() for very large geometries
  • Added new OGR_GEOM_AREA special field (#2949)
  • ensure forceToMultiLineString() works for MultiPolygons? (#2735)
  • Various fixes in OGR SQL engine (r16116, #2996, #2788, #3143, #3144)
  • Add OGREnvelope::Intersect()
  • Add OGR_G_ApproximateArcAngles() for ellipses
  • Fix crash on Ubuntu 8.10 in GetFieldAsString?() because of (too) strict guard logic (#2896)
  • add field type max so we can iterate through all possible values
  • Avoid making a 2D5 geometry from a 2D only linestring when reprojecting

OGRSpatialReference :

  • Upgrade EPSG derived files to EPSG 7.1
  • Added support to operate on COMPD_CS coordinate systems
  • Added support for importing spatial reference definitions from the OziExplorer? .MAP files.
  • Introduce static methods to destroy OGRSpatialReference and OGRCoordinateTransformation objects
  • Expose more of the axis orientation API to C
  • Add missing Eckert 1, 2, 3 and 5 projections
  • Fix typos in proj4 conversion for Wagner projections
  • hack in EXTENSION nodes for google mercators (#3136)
  • Validates PROJCS with AXIS definitions (#2739)
  • Added support for urn:ogc:def:crs:OGC::CRS:84 (and CRS:83, CRS:27) per WMS spec.
  • Wide variety of improvements to preserve PE strings through a morphFromESRI() and morphToESRI() process (#2755)
  • Fix inversion of dictionnary filename and GEOGCS/PROJCS name in OGRSpatialReference::exportToERM() (#2819)
  • Fix SpatialReference::IsSame?() for LOCAL_CS case (#2849)
  • Fix bug in ImportFromXML that prevented from retrieving projection method
  • Accept both href and xlink:href in OGC XML
  • improve us foot translation handling (#2901)
  • OGRSpatialReference::importFromUrl() : add a default 10 second timeout to avoid waiting forever when remote server is stalled
  • ensure we can translate mercator1sp with non-zero origin to proj4 (#3026)
  • ensure scalefactor preserved in somerc translation (#3032)
  • SRS_ESRI: attempt to correct equidistant cylindrical parameter morph (#3036)
  • SRS_ESRI: improve plate_carree parameter morphing (#3036)
  • SRS_PCI : Fix PCI projection string handling for UTM
  • esri_extra.wkt: correct equidistant conic definitions (#3086)
  • SRS_PANORAMA : Added support for British National Grid and Pulkovo 1995 datums.
  • Improve recognition of WKT text strings when translating into proj4 hard-coded datum names, in particular nzgd49 (also add ggrs87, carthage, hermannskogel, ire65); Fix ellipsoid parameters for modified airy (#3104)
  • OSRGetEllipsoidInfo() available for various OGR SRS modules
  • added support for OGC:CRS84 and similar srses from wms/wcs spec in SetFromUserInput? (#3090)

BNA driver :

  • Fix output of BNA driver with polygons with inner ring (#2985)
  • Proper CRLF output on Windows (#3256)

CSV driver :

  • Add support for reading and writing CSV files with semicolon or tabulation as the field separator (#2925, #2136)
  • Add automatic treatment of WKT column as geometry
  • Add 'CREATE_CSVT' layer creation option

DXF driver :

  • New for GDAL/OGR 1.7.0

Geoconcept driver:

  • Fix 'private Class and SubClass? headers are inverted' (#2919)
  • Fix error in writing 2.5D/3D export file (#2921)

GeoJSON driver:

  • updated JSON-C library to version 0.9
  • use VSIF*L API

GML driver :

  • Speed-up considerably parsing of GML coordinates in big geometries, in particular on Windows
  • Add support for gml3.1.1 srsDimension attribute, to deal with 3D geometries (#2311)
  • Support multiple <gml:pos> elements in linearrings of polygons (#3244)
  • Limited support for GML3
  • Support direct use of FIDs as long as they are all numeric or they have a completely fixed prefix (#1017)
  • Fix OGRGMLLayer::GetFeatureCount?() if there's a .XSD file available (#2969)
  • Added support for out-of-band attributes on features (for NAS)
  • Adding the date field type to xsd writer and precision info for OFTReal fields. (#2857)

GPX driver:

  • Add GPX_SHORT_NAMES configuration option to make the GPX driver report shorter field names and avoid duplicated field names once translated to shapefile (#2966)
  • Write the <bounds> element (write only)
  • Avoid escaping XML content when writing <extensions>.
  • Add appropriate xmlns when detecting Garmin GPX extensions

GRASS driver:

  • Do not report 3D geometries for 2D GRASS maps (#3009)

GTM (GPSTrackMaker) driver :

  • New for GDAL/OGR 1.7.0 (#3113)

ILI driver :

  • Improved curve segmentation algorithm
  • ILI1: Support for multiple point geomtries
  • ILI1: Support Real and Integer column types

Ingres driver:

  • Utilize the new OGC based ingres capabilities (#3159)

KML driver:

  • Support reading MultiGeometry? and layers with mixed geometry type.
  • Speed-up considerably the reading of huge KML geometries (#3005)
  • Speed-up considerably with huge number of layers
  • Moved the location of the Style element to match the OGC Schema (#2858)
  • Advertize 25D geometry type when relevant (#1803, #1853, #2181)
  • Relax KML driver about xmlns (#3004)

MySQL driver :

  • Fix mysql driver compilation with mysql 5.1/g++-4.3.2 (Mandriva 2009.1) (#2972)
  • Fixed bug MySQL driver truncating decimal places for double field type. (#2852)

OCI driver :

  • OCI varchar2 columns can be up to 4000 bytes (#2876)

ODBC driver :

  • make it slightly less likely that the srs_tablename parsing will interfere with complex DSNs.
  • support for schemas (#1969)

OGDI driver :

  • fix to avoid applying old spatial filter to unrelated layer
  • fix to force ResetReading?() when changing current layer

PGEO driver :

PostgreSQL driver:

  • Add support for tables with 'geography' column type introduced in PostGIS 1.5 (#3216)
  • Extend support of schemas in PG driver with 2 new options in the connection string: active_schema=foo and schemas=foo[,bar] (#522 and #525)
  • Implement OGRPGTableLayer::CreateFeature?() by using UPDATE instead of DELETE + INSERT (#2557)
  • Implement SetNextByIndex?() for layers of PG datasources (#3117)
  • Support PG 'real' data type in tables (#3006)
  • Speed-up PG database opening by avoiding 2 SQL requests per table
  • Avoid evaluating GetFieldIndex?() on each field of each feature, which can be very expensive if the layer has many fields
  • allow ST_AsBinary with non binary connections
  • added a configuration option PG_SKIP_VIEWS.

GeoRSS driver :

  • New for GDAL/OGR 1.7.0 (#2726)

OCI driver:

  • support blob column binding

PCIDSK driver :

  • New for GDAL/OGR 1.7.0

Shape driver :

  • Handle duplicate field names in shapefile driver. (#3247)
  • Support for opening and handling .DBF files > 2 GB (#3011)
  • Optimize to use shape bounds for spatial test before organizing poly (#2775)
  • Support for alternate date format (#2746)
  • Improve/fix TestCapability?() on OGRShapeLayer
  • Refreshed shapelib from upstream

S57 driver :

  • Fix incorrect return value of GetFeatureCount?() on S57 SOUNDG layer when SPLIT_MULTIPOINT=ON; also avoid warning on that layer when ADD_SOUNDG_DEPTH=OFF (#3163)

SQLite driver:

  • Add creation and write support in SpatiaLite?-compatible databases
  • Add SPATIAL_INDEX creation option for SpatiaLite? tables if linked against libspatialite (default to YES)
  • Implement OGRSQLiteTableLayer::TestCapability?(OLCFastFeatureCount)
  • Implement OGRSQLiteLayer::GetFIDColumn() and GetGeometryColumn?()
  • Implement TestCapability?(OLCRandomRead)
  • Add a SQLITE_LIST_ALL_LAYERS configuration option to list all(non-spatial) tables into a SQLite DB even if there are spatial tables
  • Avoid reporting the primary key column as a regular column.
  • Better precision for double values in CreateFeature?()

VFK driver:

  • New for GDAL/OGR 1.7.0

VRT driver:

  • Allow fast spatial filtering in the VGS_Direct case
  • Add support for CreateFeature?(), SetFeature?() and DeleteFeature?() operations
  • Added field definition and style control
  • Added new vrt/schema creation capability (@dummy@ datasource, script)
  • Implement 'SrcRegion?' element
  • Add a 'reportSrcColumn' attribute to the 'GeometryField?' to avoid reporting the x,y,wkt or wkb source fields in the VRT layer field definition
  • Forward TestCapability?(), GetExtent?(), SetNextByIndex?() to source layer when possible

XPlane/Flightgear driver:

  • Improve handling of Bezier curves (#3030)
  • Support new file names used by XPlane 9.00 & later
  • Cut into 2 pieces airway segments that cross the antemeridian
  • Add new layer 'Stopway' that contains the shape of the stopway/blastpad/over-run of a runway
  • Recognize code 16 and 17 for seaplane bases and heliports and add a new field to APT layer

SWIG Language Bindings


  • Recommanded SWIG version is 1.3.39
  • Added API :
    • GDAL: gdal.FilldoData(), gdal.FileFromMemBuffer(), gdal.!Unlink(), gdal.ApplyGeoTransform(), gdal.InvGeoTransform(), Band.GetUnitType(), Band.GetBand(), Band.ComputeStatistics(), Band.HasArbitraryOverviews(), RasterAttributeTable.GetLinearBinning() and SetLinearBinning(), extend [Band|Dataset].[ReadRaster|WriteRaster] to accept pixel, line and band spacing parameters
    • OGR: ogr.GeneralCmdLineProcessor(), Geometry.Segmentize(), FieldDefn.GetTypeName(),Geometry.ApproximateArcAngles()
    • OSR: osr.!ImportFromMICoordSys(), osr.!ExportToMICoordSys(), SpatialReference.Clone(),osr.!EPSGTreatsAsLatLong(), osr.!ImportFromEPSGA()
  • Make resampling an optionnal parameter for gdal.RegenerateOverview(), to be consistant with gdal.RegenerateOverviews()
  • NONNULL checks have been added to check various arguments of methods
  • add missing constants : DCAP_VIRTUALIO, color interpretations, OGR constants

CSharp bindings :

  • Add support for GetFieldAsStringList, GetFieldAsDoubleList and GetFieldAsIntegerList in the C# wrapper (#2839)
  • Support MSVC2008 builds with the csharp interface (#2862)
  • Change the dll mapping rules to support the recent MONO versions
  • Use GC pinned arrays instead of the double copy in the RasterIO functions (#3073)
  • Add typemaps to support custom CPLErrorHandler via C# swig bindings

Perl bindings :

  • in Polygonize make a local copy of the parameters as they are potentionally edited

Python bindings :

  • Add support for Python 3.X. Compatibility with Python 2.X preserved (#3265)
  • Remove old-generation Python bindings (gdal/pymod).
  • Add Python binding's version description capabilities (#3137)
  • NUMPY : Make Band|Dataset.ReadAsArray() take into account preallocated array (#2658, #3028)
  • Various memory leaks fixed
  • Fix gdal.RegenerateOverviews(), Feature.GetFieldAsStringList(), Feature.GetFieldAsIntegerList(), Feature.GetFieldAsDoubleList(), Transform.TransformPoints and CoordinateTransformation?.TransformPoints
  • Extend python TransformPoints typemap to accept any sequence (#3020)
  • Make Geometry iterable (#1886)

Java bindings (general changes):

  • Maintained again. A lot of changes to get them into clean state.
  • !RasterIO API : added API for standard Java arrays in addition to DirectByteBuffer
  • Javadoc available at