29 | | The current API describes the allowed geometry types via MgGeometricPropertyDefinition::GetGeometryTypes, which returns a bit-mask value composed of values from the MgFeatureGeometricType enumeration. The allowed values pertain to the shape dimensionality (Point, Curve, Surface or Solid), rather than to specific geometry types as described by MgGeometryType (Point, LineString, CurveString, Polygon, etc.). Some FDO Providers restrict the type of geometry in a geometric property to a specific. SHP is a good example of this. The provider may advertise that the geometry can be a Curve, which implies LineString, MultiLineString, CurveString, and MultiCurveString. However, the provider might only allow LineString in this case. If an attempt is made to insert a MultiLineString geometry, an exception is thrown that it cannot be written. A more fine grained specification of allowed geometry types will avoid these situations because the caller can check specific types beforehand. |
30 | | FDO supports the needed check via the FdoGeometricPropertyDefinition::GetSpecificGeometryTypes method, and its counterpart, SetSpecificGeometryTypes. These more specific method were never added to the corresponding GIS Platform class, MgGeometricPropertyDefinition. This RFC proposes to add the same methods to the Platform. |
| 29 | The current API describes the allowed geometry types via MgGeometricPropertyDefinition::!GetGeometryTypes, which returns a bit-mask value composed of values from the !MgFeatureGeometricType enumeration. The allowed values pertain to the shape dimensionality (Point, Curve, Surface or Solid), rather than to specific geometry types as described by !MgGeometryType (Point, !LineString, !CurveString, Polygon, etc.). Some FDO Providers restrict the type of geometry in a geometric property to a specific. SHP is a good example of this. The provider may advertise that the geometry can be a Curve, which implies !LineString, !MultiLineString, !CurveString, and !MultiCurveString. However, the provider might only allow !LineString in this case. If an attempt is made to insert a !MultiLineString geometry, an exception is thrown that it cannot be written. A more fine grained specification of allowed geometry types will avoid these situations because the caller can check specific types beforehand. |
| 30 | FDO supports the needed check via the FdoGeometricPropertyDefinition::!GetSpecificGeometryTypes method, and its counterpart, !SetSpecificGeometryTypes. These more specific method were never added to the corresponding GIS Platform class, !MgGeometricPropertyDefinition. This RFC proposes to add the same methods to the Platform. |
88 | | Defaults will be applied as appropriate when the older SetGeometryTypes method is used. The MgFeatureGeometricType --> MgGeometryType mappings are: |
89 | | * Point --> Point and MultiPoint |
90 | | * Curve --> LineString, MultiLineString, CurveString, MultiCurveString |
91 | | * Surface --> Polygon, MultiPolygon, CurvePolygon, MultiCurvePolygon |
| 88 | Defaults will be applied as appropriate when the older !SetGeometryTypes method is used. The !MgFeatureGeometricType --> !MgGeometryType mappings are: |
| 89 | * Point --> Point and !MultiPoint |
| 90 | * Curve --> !LineString, !MultiLineString, !CurveString, !MultiCurveString |
| 91 | * Surface --> Polygon, !MultiPolygon, !CurvePolygon, !MultiCurvePolygon |