= FDO RFC 54 - FDO Provider for !MapInfo .TAB and .MIF/.MID Files = This page contains a request for comments document (RFC) for the FDO Open Source project. More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page. == Status == ||RFC Template Version||(1.1)|| ||Submission Date||2010-10-26|| ||Last Modified||Leaf Li 2010-10-26|| ||Author||Leaf Li|| ||RFC Status||Ready for Review|| ||Implementation Status||Pending|| ||Proposed Milestone||3.6.0.0 || ||Assigned PSC guide(s)||Orest Halustchak, Greg Boone|| ||'''Voting History'''||(vote date)|| ||+1|||| ||+0|||| ||-0|||| ||-1|||| == Overview == This RFC proposes a new FDO provider for accessing !MapInfo .TAB and .MIF/.MID files. == Motivation == !MapInfo Professional is a powerful Microsoft Windows-based GIS application. !MapInfo datasets can be saved as native (.TAB) format or interchange (.MIF/.MID) format. Currently FDO OGR provider is available in FDO open source website, which provides capability to read !MapInfo .TAB and .MIF/.MID files. However, it has the following major limitations. Supports reading only. * Not support FdoISelectAggregates command. * Support very limited expression. * Support limited spatial/non-spatial filter. * Cannot handle coordinate system correctly. * Support limited data type. * Support limited geometric type. * …… FDO !MapInfo provider is to create an FDO provider for !MapInfo .TAB and .MIF/.MID files to eliminate the limitations above and provide reading/writing capability for .TAB and .MIF/.MID files. == Proposed Solution == FDO !MapInfo provider is implemented based on MITAB library (http://mitab.maptools.org/), which is an Open Source C++ library to read and create !MapInfo .TAB and .MIF/MID files. It is based on the OGR library which is an implementation of the Open GIS Consortium Simple Feature specification. However, MITAB can’t meet all requirements of FDO !MapInfo provider. For example, * MITAB doesn’t support update and delete a feature. * MITAB doesn’t support some of FDO data type such as boolean and decimal. But .TAB and .MIF/.MID files really support them. * …… So we need to extend MITAB so that it meets our requirement. Now you can find development version of this provider in Google Code. http://code.google.com/p/groundnut/ == Description == Name: OSGeo.!MapInfo.3.6[[BR]] Display Name: OSGeo FDO Provider for !MapInfo .TAB and .MIF/.MID[[BR]] Description: Read/write access to !MapInfo .TAB and .MIF/.MID files.[[BR]] Is Managed: False[[BR]] Supported Versions: 3.6.0.0[[BR]] Feature Data Objects Version: 3.6.0.0[[BR]] Library Name: !MapInfoProvider.dll[[BR]] == Capabilities == * Command Capabilities * Commands * Select * Select Aggregates * Insert * Delete * Update * Describe Schema * Apply Schema * Destroy Schema * Create Spatial Context * Get Spatial Contexts * Parameters - Unsupported * Select Distinct - Supported * Select Expressions - Supported * Select Functions - Supported * Select Grouping - Supported * Select Ordering - Supported * Timeout - Unsupported * Connection Capabilities * Configuration - Unsupported * Flush - Supported * Locking - Unsupported * Long Transactions - Unsupported * Multiple Spatial Contexts - Supported * SQL - Unsupported * Timeout - Unsupported * Transactions - Unsupported * Expression Capabilities * See FDO RFC 8 (http://trac.osgeo.org/fdo/wiki/FDORfc8) for a list of the expression functions to implement. * Geometric Functions based on FDO RFC 11 (http://trac.osgeo.org/fdo/wiki/FDORfc11). * Filter Capabilities * Spatial Operations * Envelope Intersects * Intersects * Inside * Equals * Disjoint * Touches * Overlaps * Crosses * Within * Contains * Geodesic Distance - Supported * Non Literal Geometric Operations- Unsupported * Schema Capabilities * Class Types * Class * Feature Class * Data Types * Boolean * !DateTime * Decimal * Int16 * Int32 * Single * String * Supported !AutoGenerated Types - Supported * Supported Identity Property Types * Int32. * Association Properties - Unsupported * !AutoId Generation - Supported * Composite Id - Unsupported * Composite Unique Value Constraints - Supported * !DataStore Scope Unique Id Generation - Unsupported * Default Value - Unsupported * Exclusive Value Range Constraints - Unsupported * Inclusive Value Range Constraints - Unsupported * Inheritance - Supported * Multiple Schemas - Unsupported * Network Model - Unsupported * Null Value Constraints - Unsupported * Object Properties - Unsupported * Schema Modification - Supported * Schema Overrides - Unsupported * Unique Value Constraints - Unsupported * Value Constraints List - Unsupported * Geometry Capabilities * Dimensionalities * XY * Geometry Types * Point * Line String * Polygon * Multi Point * Multi Line String * Multi Polygon * Curve String * Curve Polygon * Multi Curve String * Multi Curve Polygon * Multi Geometry * Geometry Component Types * Linear Ring * Circular Arc Segment * Line String Segment * Ring * Topology Capabilities * Topological Hierarchy - Unsupported * Topology - Unsupported * Raster Capabilities * Raster - Unsupported * Stitching - Unsupported * Subsampling - Unsupported === Test Plan === Development of a set of unit tests available for execution in a stand-alone application. == !Funding/Resources == Leaf Li and Aleck Sun.