private ICoordinateSequence ConvertOrdinateArray(double[] oordinates, SdoGeometry sdoGeom) { int dim = sdoGeom.Dimensionality; Coordinate[] coordinates = new Coordinate[oordinates.Length / dim]; int zDim = 2; //sdoGeom.getZDimension() - 1; int lrsDim = sdoGeom.LRS - 1; for (int i = 0; i < coordinates.Length; i++) { if (dim == 2) { coordinates[i] = new Coordinate(oordinates[i * dim], oordinates[i * dim + 1]); } else if (dim == 3) { if (sdoGeom.LRS > 0) { coordinates[i] = MCoordinate.Create2dWithMeasure( oordinates[i * dim], // X oordinates[i * dim + 1], // Y oordinates[i * dim + lrsDim]); // M } else { coordinates[i] = new Coordinate( oordinates[i * dim], // X oordinates[i * dim + 1], // Y oordinates[i * dim + zDim]); // Z } } else if (dim == 4) { // This must be an LRS Geometry if (sdoGeom.LRS == 0) { throw new ApplicationException("4 dimensional Geometries must be LRS geometry"); } coordinates[i] = MCoordinate.Create3dWithMeasure( oordinates[i * dim], // X oordinates[i * dim + 1], // Y oordinates[i * dim + zDim], // Z oordinates[i * dim + lrsDim]); // M } } return(factory.CoordinateSequenceFactory.Create(coordinates)); }
private ICoordinate[] getCoordinates(Double[] oordinates, SdoGeometry sdoGeom) { int dimension = sdoGeom.Dimensionality; ICoordinate[] coordinates = new ICoordinate[oordinates.Length / dimension]; int zDim = sdoGeom.ZDimension - 1; int lrsDim = sdoGeom.LRSDimension - 1; for (int i = 0; i < coordinates.Length; i++) { if (dimension == 2) { coordinates[i] = new Coordinate( oordinates[i * dimension], oordinates[i * dimension + 1]); } else if (dimension == 3) { if (sdoGeom.IsLrsGeometry) { coordinates[i] = MCoordinate.Create2dWithMeasure( oordinates[i * dimension], oordinates[i * dimension + 1], oordinates[i * dimension + lrsDim]); } else { coordinates[i] = new Coordinate( oordinates[i * dimension], oordinates[i * dimension + 1], oordinates[i * dimension + zDim]); } } else if (dimension == 4) { // This must be an LRS Geometry if (!sdoGeom.IsLrsGeometry) { throw new Exception( "4 dimensional Geometries must be LRS geometry"); } coordinates[i] = MCoordinate.Create3dWithMeasure( oordinates[i * dimension], oordinates[i * dimension + 1], oordinates[i * dimension + zDim], oordinates[i * dimension + lrsDim]); } } return(coordinates); }