Пример #1
0
        private void WritePolyhedralSurface(PolyhedralSurface polyhedralSurface)
        {
            wkbWriter.Write(polyhedralSurface.Geometries.Count);

            foreach (Geometry geometry in polyhedralSurface.Geometries)
            {
                WriteInternal(geometry);
            }
        }
Пример #2
0
        private void WritePolyhedralSurface(PolyhedralSurface polyhedralSurface)
        {
            wktBuilder.Append("(");

            foreach (Geometry geometry in polyhedralSurface.Geometries)
            {
                Write(geometry, true);
                wktBuilder.Append(",");
            }

            wktBuilder.Remove(wktBuilder.Length - 1, 1);
            wktBuilder.Append(")");
        }
Пример #3
0
        private PolyhedralSurface ReadPolyhedralSurface(Dimension dimension)
        {
            PolyhedralSurface polyhedralSurface = new PolyhedralSurface();

            uint geometryCount = wkbReader.ReadUInt32();

            for (int i = 0; i < geometryCount; i++)
            {
                polyhedralSurface.Geometries.Add(Read <Polygon>());
            }

            return(polyhedralSurface);
        }
Пример #4
0
        protected PolyhedralSurface ReadPolyhedralSurface(Dimension dimension)
        {
            PolyhedralSurface polyhedralSurface = new PolyhedralSurface();

            polyhedralSurface.Dimension = dimension;

            ExpectGroupStart();

            do
            {
                polyhedralSurface.Geometries.Add(ReadPolygon(dimension));
            } while (IsMatch(","));

            ExpectGroupEnd();

            return(polyhedralSurface);
        }
Пример #5
0
        protected Geometry CreateGeometry(GeometryType geometryType, Dimension dimension)
        {
            Geometry geometry = null;

            switch (geometryType)
            {
            case GeometryType.Point: geometry = new Point(); break;

            case GeometryType.LineString: geometry = new LineString(); break;

            case GeometryType.Polygon: geometry = new Polygon(); break;

            case GeometryType.MultiPoint: geometry = new MultiPoint(); break;

            case GeometryType.MultiLineString: geometry = new MultiLineString(); break;

            case GeometryType.MultiPolygon: geometry = new MultiPolygon(); break;

            case GeometryType.GeometryCollection: geometry = new GeometryCollection(); break;

            case GeometryType.CircularString: geometry = new CircularString(); break;

            case GeometryType.CompoundCurve: geometry = new CompoundCurve(); break;

            case GeometryType.CurvePolygon: geometry = new CurvePolygon(); break;

            case GeometryType.MultiCurve: geometry = new MultiCurve(); break;

            case GeometryType.MultiSurface: geometry = new MultiSurface(); break;

            case GeometryType.PolyhedralSurface: geometry = new PolyhedralSurface(); break;

            case GeometryType.Tin: geometry = new Tin(); break;

            case GeometryType.Triangle: geometry = new Triangle(); break;

            default: throw new NotSupportedException(geometryType.ToString());
            }

            geometry.Dimension = dimension;

            return(geometry);
        }
Пример #6
0
 public bool Equals(PolyhedralSurface <T> other)
 {
     return(Geometries.SequenceEqual(other.Geometries));
 }