📄 history.txt
字号:
considered as point, not pixel. (bug 683)
- Updated list of datum parameters from data made available by Bill Wemple
from MapInfo on directionsmag.com: 7 new datum defns and 1 fixed.
List of ellipsoids also updated (Bug 608, patch by Uffe K.)
- Do not output a BG color in style string for transparent brushes (bug 693)
- mitab_tabfile.cpp: Several fixes for TABFile::Open() when loading the
tabfile fails. (provided by Stephen Cheesman).
- mitab_mapfile.cpp: Fixed error return value in LoadNextMatchingObjectBlock()
per http://bugzilla.remotesensing.org/show_bug.cgi?id=615. NFW
- mitab_ogr_datasource.cpp: Modified CreateLayer() to use
-1000,-1000,1000,1000 bounds for GEOGCS much like in mitab_bounds.cpp.
This ensures that geographic files in the range 0-360 works as well as
-180 to 180.
Version 1.3.0 (2004-07-07)
--------------------------
- Use tab as default delimiter (if none is explicitly specified) when
reading .MIF/.MID files (Anthony D, bug 37) We still generate new files
using comma as delimiter.
- C API: Added mitab_c_get_feature_count() and mitab_c_get_field_as_double(),
added ability to create a feature of type TABFC_NoGeom (Anthony D)
- Added support for reading affine coordsys parameters in extended
.map header block of v500+ (Anthony D, bug 41)
- Added mitab_c_getlibversion() to C API. (Uffe K. - bug 21)
- Write 3D geometries to MIF/tab as if they were 2D. NFW
- Flush out .mif header on Close() if no features written. NFW
- Fixed previous flushing logic to only do so for writable files. NFW
- Removed obsolete mif2mif.cpp mif2tab.cpp mif2tabbatch.cpp. They are
all replaced by the more up to date tab2tab.cpp
- Modified the OGR creation logic to properly support creating single
files sets rather than directories full of files. NFW
- Fixed memory leaks with seamless tab files (bug 283)
- Call CPLReadLine(NULL) in MIDDATAFile::Close() to cleanup working buffer.
- Removed special bailout for m_poMAPFile == NULL in TABFile::Close().
It is important to cleanup other used memory.
- mitab_coordsys.cpp: fixed small memory leak for non-earth coordinate
systems. (bug supplied by Stephen Cheeseman, Geosoft).
- Added mitab_c_load_coordsys_table() to C API (bug 469)
- mitab_ogr_datasource.cpp: Don't report single layer that hasn't been
"created" yet via GetLayerCount(). Fixes up single file generation issues.
Version 1.2.4 (2003-07-23)
--------------------------
- Added 'indexed' and 'unique' parameters to mitab_c_add_field().
Applications written for older versions of the C API will have to
be updated to pass these two new parameters.
- Ensure that a blank line in a mid file is treated as one field containing
an empty string instead of being zero fields. NFW
- Fixes to support mif/mid files produced by Geomedia V5 (bug 1631):
- Do not produce an error if .mid data records end with a stray ','
- Treat tabs (\t) as a blank space delimiter when reading coordinate
values in .mif file
- Fixed sign of rotation parameters in TOWGS84 parameters in WKT. MapInfo
uses EPSG 9607's 7 parameter datum shift method, but TOWGS84 is defined
to hold EPSG 9606 style parameters. Only the rotational signs differ. NFW
- Fixed spelling of Provisional_South_American_Datum_1956 in datum list. NFW
- Fixed bug parsing ellipsoid out of CoordSys strings for coordinate
systems with datum 999 or 9999. NFW
- Fixed leak of TABMAPObjHdr when writing NONE geometries in SetFeature().
- Increased MIF reader line buffer size to 10000 chars
- Added support for writing TABFC_NoGeom (NONE) geometries via the C API.
- Fixed crash when reading .mif file that doesn't contain a DATA line
(Thanks to Riccardo Cohen for the fix).
- Implement DeleteDataSource() method on the driver object. NFW
- mitab_spatialref.cpp, mitab_coodsys.cpp: Fixed up regional mercator logic.
It was screwing up transverse mercator with non-zero latitude when writing
to tab, and wasn't being written properly to .mif. NFW
- mitab_feature.cpp: fixed C++ style true/false where TRUE/FALSE required.
As per GDAL bugzilla 311. NFW
- Fixed problem scanning node in TABINDNode::FindNext() - bug 2176, FW
Version 1.2.3 - (2002-10-15)
----------------------------
- Support auto-addition of a dummy "FID" column if TAB files are created
with no fields, instead of producing an error. A corresponding change
has not yet been applied to the MIF driver. NFW
- Fixed lots of places that check for errors by examining CPLGetLastErrorNo().
A warning will trigger all these places as an error. Changed to check that
the last error type was CE_Failure and add a CPLErrorReset() at the
beginning of many affected sections. NFW
- Modified TABGetBasename() (in mitab_utils.cpp) to stop at the first
forward or backslash otherwise "C:/warmerda/mi\can_caps.tab" will result
in a basename of "mi\can_caps.tab". NFW
- Modified datum list in mitab_spatialref.cpp with a bunch of new EPSG/OGC
datum names provided by Siro Martello from Cadcorp. NFW
- Fix memory leak of m_pszIndex in mitab_miffile.cpp, the poSpatialRef
in TABFile::SetMIFCoordSys(), and a leak in MITABExtractCoordSysBounds(). NFW
- Added untested support in mitab_spatialref.cpp, and mitab_coordsys.cpp for
projections Regional Mercator (26), Polyconic (27), Azimuthal Equidistant -
All origin latitudes (28), and Lambert Azimuthal Equal Area - any aspect
(29). NFW
Version 1.2.2 - (2002-07-06)
----------------------------
- Added a validation in TABMAPFile::GetFeatureId(). When there's no .map file
or no spatial indexes or no geometry, the function return -1 like an Eof.
This prevent the reading of a file set to NULL. (bug 169 (MapServer))
- Treat Region as MultiPolygon in mitab_c_set_point() to support Regions
with multiple islands and holes. Passing a part number <= 0 (second
parameter in mitab_c_set_point()) will result in adding a new island
(i.e. polygon). By default, parts > 1 are treated as holes in the
last island (polygon) that was created.
- Added IsInteriorRing() function in the TABRegion class to validate if a ring
in a polygon is an external or an internal ring. The function returns
true if the specified ring is an interior ring. The function
mitab_c_is_interior_ring() in mitab_capi.c has been created too to call
IsInteriorRing() if the feature is a region.
- In mitab_mapheaderblock.cpp, the Coordsys2Int() function used integer values
to check for overflow. However, in some case, integer was to small and caused
problems with applications that called SetSpatialFilter() with a filter
much larger than the file's bounds. So, this function now uses doubles
internally for comparison, but still returns and receives integers.
- Add SetSpatialFilter function in the TABSeamless class, to use seamless
layer in the right way. Now, the filter is applied on each data file and
on the index file. (Bug 164 (MapServer))
Version 1.2.1 - (2002-05-08)
----------------------------
- Implement SetMIFCoordSys in the MIFFile class. The coordsys was not
written when calling mitab_c_create for MIF files because
MIFFile::SetMIFCoordSys always returned -1 (Bug 984).
- Added support for TABFC_FontPoint and TABFC_CustomPoint in
mitab_c_create_feature(), mitab_c_set_points(), mitab_c_set_font() and
mitab_c_get_font().
- mitab_capi.h: Use stdcall by default for all public mitab.dll functions
instead of cdecl. Should still work fine for C/C++ users, and will
allow VB/Delphi users to use the same DLL with Bo T.'s interface files.
Version 1.2.0 - (2002-05-03)
----------------------------
- Made changes in TABRelation to avoid an infinite loop. The m_poCurFeature
object have been deleted and the function GetFeatureRef() have been replace
by GetFeature(). This new function return a TABFeature object that must be
control by the calling method. (bug 706)
- Made important changes in order to support writing objects in 16 bits
coordinate format. New TABMAPObjHdr-derived classes are used to hold
object info in memory until block is full.
This was required in order to fix a problem when very small regions
were written in 32 bits coordinates when 16 bits should have been used
because MBR < 65536. In this case MapInfo would attempt to rewrite the
modified object info in 16 bits format while the coordinates blocks are
still in 32 bits format... resulting in a corrupted the file.
Note that at this point only feature types that use separate coordinate
blocks can be saved in 16 bits format (PLINE, MULTIPLINE and REGION).
- Prevent writing of coordinates outside of the +/-1e9 integer bounds.
If coordinates outside of that range are written then the values are
written as +/-1e9 instead and a warning (ERROR 503) is produced when
the file is closed. Coordinates outside of the +/-1e9 bounds limits
seemed to confuse MapInfo.
- Disabled the warning (ERROR 503) when coordinates outside of the +/-1e9
integer bounds in SetCoordFilter().
- Modified the conversion of double to integer coordinates to fix an old
problem where coordinates written by MITAB would be a little bit off
sometimes compared with the same values written by MapInfo.
- Modified mitab_capi.cpp to correctly produce "point" style arcs from
mitab_c_set_arc(). It now sets a point geometry ensuring that the
TABArc::ValidateMapInfoType() method will succeed. As per DMSG Bug 644. NFW
- Fixed some TABView issues (bug 703):
- Support "select * ..." syntax
- Accept source table names with or without the .tab extension
- Avoid crash if .IND file for related table is missing (i.e. deleted)
- The OGRDriver Create method will now accept the FORMAT=MIF option to
create a dataset of mif files instead of tab files. NFW
- Prevent an infinite loop of calls to LoadNextMatchingObjectBlock() in
GetNextFeatureId() if no objects found in spatial index when using a
spatial filter.
- False Easting/Northing should be in the linear units of measure in MapInfo,
but in OGRSpatialReference/WKT they are always in meters. Convert
accordingly in mitab_coordsys.cpp and mitab_spatialref.cpp. NFW
- Added support for reading and writing new V650 Multipoint for both TAB and
MIF.
- Added support for Cassini Soldner projection (projection 30). NFW
- Add EOF validation in MIDDATAFile::GetLastLine() to fix EOF problems
while reading some MIF/MID files (Bug 819, JSL)
- New VB, Pascal, and MapBasic interfaces contributed by Bo Thomsen.
See contrib/README_VB.TXT
- Added to C API: mitab_c_get_field_width(), mitab_c_get_field_precision()
Version 1.1.3 - (2001-11-02)
----------------------------
- mitab_tabview.cpp: Use VSIUnlink() instead of unlink(). NFW.
- mitab_utils.cpp: Don't use multi-byte support if _WIN32 and unix are
defined to try and preserve cygwin support. NFW
- C API: Added mitab_c_get_text().
Added mitab_c_get_mif_coordsys()
Added mitab_c_get_projinfo() and mitab_c_set_projinfo()
Changed mitab_c_create() to make bounds optional and allow using
default projection bounds if available
- GetLabelStyleString(): take line spacing and num. of lines into account
when calculating text height.
- Test for NULL geometries if spatial filter enabled in GetNextFeature()
(objects with NONE geometry would have caused a crash when a spatial
filter was set).
- Fixed a few memory leaks in mitab_miffile.cpp. NFW.
- Fixed mitab_capi.c to not delete the spatial ref unless dereferencing it
drops the count to 0. NFW.
- Modified TABFile::SetSpatialRef() to clone the passed in OGRSpatialReference
instead of taking a reference to it, so it will work with stack allocated
OGRSpatialReferences or in cases where the caller doesn't check ref counts.
NFW.
- TABPolyline::ValidateMapInfoType(): return TAB_GEOM_NONE if numpoints < 2
- Substantial additions to lots of files adding support for efficient
spatial queries by utilizing the spatial indexes when reading. NFW.
- TABText should not produce an error if reading a 0-length text.
- Seamless files: when reading on Unix, replace '\\' with '/' in file path
read from the index table.
- Modified mitab_miffile.cpp to keep track of the feature id of the
preloaded text line in m_nPreloadedId instead of m_nCurFeatureId to fix
serious problems with access through IMapInfo::GetNextFeature() - this
affects applications using the pure OGRLayer API to access mif files. NFW
- mitab_middatafile.cpp: Use VSIRewind() instead of rewind() to ensure that
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -