Changes between Version 4 and Version 5 of FDORfc38
- Timestamp:
- 07/15/09 06:11:47 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FDORfc38
v4 v5 10 10 ||Submission Date|| June 08, 2009 || 11 11 ||Last Modified|| Dan Stoica[[Timestamp]]|| 12 ||Author|| Orest Halustchak ||12 ||Author||Dan Stoica, Orest Halustchak || 13 13 ||RFC Status||draft|| 14 14 ||Implementation Status||draft|| … … 27 27 == Motivation == 28 28 29 Currently, this provider supports only simple polygons. The SHP specification has only a polygon type, but it accounts for multiple outer polygon loops, which basically are multi-polygons. TheSHP provider is not taking advantage of this and is not returning multi-polygons when the polygons are actual multi-polygons. The main processing that is missing with the current provider is on read, it does not check the polygon details to determine whether to generate an FDO polygon or an FDO multi-polygon geometry.29 Currently, this provider supports only simple polygons. The SHP specification defines only a polygon type, but it defines it as supporting multiple outer polygon loops, which basically are multi-polygons as defined in FDO. The FDO SHP provider is not taking advantage of this and is not returning multi-polygons when the polygons are actual multi-polygons. The main processing that is missing with the current provider is on read, it does not check the polygon details to determine whether to generate an FDO polygon or an FDO multi-polygon geometry. 30 30 31 31 == Proposed Solution == … … 33 33 Modify the FDO SHP provider: 34 34 35 * Change its capability setting to indicate that it supports multi-polygon geometry types .[[BR]]35 * Change its capability setting to indicate that it supports multi-polygon geometry types, FdoIGeometryCapabilities::GetGeometryTypes().[[BR]] 36 36 * On input of geometry, there is no further processing needed as the current code will save all input loops without checking whether they are outer or inner.[[BR]] 37 37 * On read of geometry, the code should check the geometry to see if there are multiple loops. If there are multiple loops, determine if there are more than one outer loops. If so, change the output geometry type to FDO multi-polygon, otherwise, leave it as polygon with interior rings.[[BR]] … … 40 40 == Implications == 41 41 42 * The code for this is mostly done, just turned off. We will need to measure theperformance impact, but the extra processing would only apply for cases where there are multiple loops. The most common case of a single loop polygon would not be processed any differently and would not have a performance impact.42 * The code for this is mostly done, just turned off. We will need to measure any performance impact, but the extra processing would only apply for cases where there are multiple loops. The most common case of a single loop polygon would not be processed any differently and would not have a performance impact. 43 43 44 * The FDO geometry type will be corrected automatically on reading. The caller must expect either a polygon or a multi-polygon regardless of original geometry type on insert.44 * The FDO geometry type will be set accordingly on reading. The caller must expect either a polygon or a multi-polygon regardless of original geometry type on insert. 45 45 46 46 == Test Plan ==