/// <summary> /// Method to read /// </summary> /// <param name="reader"></param> /// <param name="wkbReader"></param> /// <returns></returns> public static GpkgStandardBinary Read(BinaryReader reader, WKBReader wkbReader) { return(new GpkgStandardBinary { Header = GpkgBinaryHeader.Read(reader), WellKnownBytes = reader.ReadBytes((int)(reader.BaseStream.Length - reader.BaseStream.Position)), _wkbReader = wkbReader }); }
private static void ReadBESridExtent(BinaryReader reader, GpkgBinaryHeader header) { header._srs_id = SwapByteOrder(reader.ReadInt32()); var ordinates = header.Ordinates; if (ordinates == Ordinates.None) { header._extent = new Envelope(); header._zrange = Interval.Create(); header._mrange = Interval.Create(); return; } header._extent = new Envelope(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); if ((ordinates & Ordinates.Z) == Ordinates.Z) header._zrange = Interval.Create(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); if ((ordinates & Ordinates.M) == Ordinates.M) header._mrange = Interval.Create(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); }
public static GpkgBinaryHeader Read(BinaryReader reader) { var res = new GpkgBinaryHeader(); res._magic = reader.ReadBytes(2); res._version = reader.ReadByte(); res._flags = reader.ReadByte(); switch (res.Endianess) { case 1: ReadSridExtent(reader, res); break; case 2: ReadBESridExtent(reader, res); break; } return res; }
public static GpkgBinaryHeader Read(BinaryReader reader) { var res = new GpkgBinaryHeader(); res._magic = reader.ReadBytes(2); res._version = reader.ReadByte(); res._flags = reader.ReadByte(); switch (res.Endianess) { case 1: ReadSridExtent(reader, res); break; case 0: ReadBESridExtent(reader, res); break; } return(res); }
private static void ReadBESridExtent(BinaryReader reader, GpkgBinaryHeader header) { header._srs_id = SwapByteOrder(reader.ReadInt32()); var ordinates = header.Ordinates; if (ordinates == Ordinates.None) { header._extent = new Envelope(double.MinValue, double.MaxValue, double.MinValue, double.MaxValue); header._zrange = Interval.Create(double.MinValue, double.MaxValue); header._mrange = Interval.Create(double.MinValue, double.MaxValue); return; } header._extent = new Envelope(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); if ((ordinates & Ordinates.Z) == Ordinates.Z) { header._zrange = Interval.Create(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); } if ((ordinates & Ordinates.M) == Ordinates.M) { header._mrange = Interval.Create(SwapByteOrder(reader.ReadDouble()), SwapByteOrder(reader.ReadDouble())); } }
private static void ReadSridExtent(BinaryReader reader, GpkgBinaryHeader header) { header._srs_id = reader.ReadInt32(); var ordinates = header.Ordinates; if (ordinates == Ordinates.None) { header._extent = new Envelope(); header._zrange = Interval.Create(); header._mrange = Interval.Create(); return; } header._extent = new Envelope(reader.ReadDouble(), reader.ReadDouble(), reader.ReadDouble(), reader.ReadDouble()); if ((ordinates & Ordinates.Z) == Ordinates.Z) { header._zrange = Interval.Create(reader.ReadDouble(), reader.ReadDouble()); } if ((ordinates & Ordinates.M) == Ordinates.M) { header._mrange = Interval.Create(reader.ReadDouble(), reader.ReadDouble()); } }