Exemple #1
0
        private static Geometry FromBinary(EndianAwareBinaryReader reader)
        {
            Endianness endianness = (Endianness)reader.ReadByte();

            reader.SetEndianness(endianness);

            WkbType type = (WkbType)reader.ReadUInt32();

            switch (type)
            {
            case WkbType.Geometry:
            {
                return(FromBinary(reader));
            }

            case WkbType.Point:
            {
                return(PointFrom(reader));
            }

            case WkbType.LineString:
            {
                return(LineStringFrom(reader));
            }

            case WkbType.Polygon:
            {
                return(PolygonFrom(reader));
            }

            case WkbType.MultiPoint:
            {
                return(MultiPointFrom(reader));
            }

            case WkbType.MultiLineString:
            {
                return(MultiLineStringFrom(reader));
            }

            case WkbType.MultiPolygon:
            {
                return(MultiPolygonFrom(reader));
            }

            case WkbType.GeometryCollection:
            {
                return(GeometryCollectionFrom(reader));
            }

            default:
            {
                throw new NotSupportedException($"Unsupported WKB type {type.ToString()}.");
            }
            }
        }
Exemple #2
0
 internal static void WriteXdr(this BinaryWriter writer, WkbType wkbType)
 {
     writer.WriteXdr((int)wkbType);
 }