I tried to recreate M8 intrinsic fields in M9. Could be useful sometimes. --SQL9 ALTER TABLE [T1] ( ADD [Type (I)] VARCHAR AS [[ CASE WHEN GeomType([Geom]) = 1 THEN 'point' WHEN GeomType([Geom]) = 2 THEN 'line' WHEN GeomType([Geom]) = 3 THEN 'area' ELSE 'Unknown' END ]] ); ALTER TABLE [T1] ( ADD [Branches (I)] INT32 AS [[ GeomBranchCount([Geom]) ]] ); ALTER TABLE [T1] ( ADD [Coordinates (9)] INT32 AS [[ GeomCoordCount([Geom]) ]] ); ALTER TABLE [T1] ( ADD [Coordinates (I)] INT32 AS [[ CASE WHEN GeomType([Geom]) = 3 THEN GeomCoordCount([Geom]) - [Branches (I)] ELSE GeomCoordCount([Geom]) END ]] ); ALTER TABLE [T1] ( ADD [X (I)] FLOAT64 AS [[ VectorValue(GeomCenter([Geom], 0), 0) ]] ); ALTER TABLE [T1] ( ADD [Y (I)] FLOAT64 AS [[ VectorValue(GeomCenter([Geom], 0), 1) ]] ); ALTER TABLE [T1] ( ADD [Latitude (I)] FLOAT64 WITH [[ VALUE @converter TABLE = CALL CoordConverterMake(CoordSystemDefaultLatLon(), ComponentCoordSystem([Drawing])); ]] AS [[ VectorValue(GeomCenter(CoordConvert(@converter, [Geom]), 0), 1) ]] ); ALTER TABLE [T1] ( ADD [Longitude (I)] FLOAT64 WITH [[ VALUE @converter TABLE = CALL CoordConverterMake(CoordSystemDefaultLatLon(), ComponentCoordSystem([Drawing])); ]] AS [[ VectorValue(GeomCenter(CoordConvert(@converter, [Geom]), 0), 0) ]] ); ALTER TABLE [T1] ( ADD [Bearing (I)] FLOAT64 WITH [[ VALUE @system NVARCHAR = ComponentFieldCoordSystem([T1], 'Geom'); VALUE @measure TABLE = CALL CoordMeasureMake(@system, 'Meter', FALSE); VALUE @unitDeg FLOAT64 = CoordUnitScale(CoordUnitByName('Degree')); ]] AS [[ CoordMeasureBearing(@measure, [Geom]) / @unitDeg ]] ); ALTER TABLE [T1] ( ADD [Area (I)] FLOAT64 WITH [[ VALUE @system NVARCHAR = ComponentFieldCoordSystem([T1], 'Geom'); VALUE @measure TABLE = CALL CoordMeasureMake(@system, 'Meter', FALSE); ]] AS [[ CoordMeasureArea(@measure, [Geom]) ]] ); ALTER TABLE [T1] ( ADD [Length (m)] FLOAT64 WITH [[ VALUE @system NVARCHAR = ComponentFieldCoordSystem([T1], 'Geom'); VALUE @measure TABLE = CALL CoordMeasureMake(@system, 'Meter', FALSE); ]] AS [[ CoordMeasureLength(@measure, [Geom]) ]] );
|