public static List<byte> GenerateHeader(IStGeometry geometry, List<byte> encodedBytes) { // 8 bytes header var header = new List<byte>(); // 4 first bytes => number of used bytes to encode coordinates var encodedNbBytes = new List<byte>(StCoordinatesSystemHelper.GetBytesFromValue(encodedBytes.Count, StParameters.CoordinatesSystem)); for (int i = encodedNbBytes.Count; i < 4; ++i) { encodedNbBytes.Add(0); } header.AddRange(encodedNbBytes); // 1 unknown byte (perhaps big/little endianness ?) header.Add(1); // 1 byte to define geometry dimension (Z / M) int zm = 0; if (geometry.HasZ) zm += 1; if (geometry.HasM) zm += 2; header.Add((byte)zm); // 2 unknown bytes header.AddRange(new byte[] { 0, 0 }); return header; }
public static List <byte> GenerateHeader(IStGeometry geometry, List <byte> encodedBytes) { // 8 bytes header var header = new List <byte>(); // 4 first bytes => number of used bytes to encode coordinates var encodedNbBytes = new List <byte>(StCoordinatesSystemHelper.GetBytesFromValue(encodedBytes.Count, StParameters.CoordinatesSystem)); for (int i = encodedNbBytes.Count; i < 4; ++i) { encodedNbBytes.Add(0); } header.AddRange(encodedNbBytes); // 1 unknown byte (perhaps big/little endianness ?) header.Add(1); // 1 byte to define geometry dimension (Z / M) int zm = 0; if (geometry.HasZ) { zm += 1; } if (geometry.HasM) { zm += 2; } header.Add((byte)zm); // 2 unknown bytes header.AddRange(new byte[] { 0, 0 }); return(header); }
public static void Write(IStGeometry geo) { var log = geo + " : "; Debug.Write(log); Write(geo.Bytes); }
public static void Write(IStGeometry geo) { var log = geo + " : "; Debug.Write(log); Write(geo.Bytes); }