public static void WriteTo(this BoundingRect rect, BinaryWriter writer) { writer.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(rect.MinLat)); writer.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(rect.MinLon)); writer.Write7BitEncodedInt(rect.MaxLat - rect.MinLat); writer.Write7BitEncodedInt(rect.MaxLon - rect.MinLon); }
public void WriteZigZag(long value) { var diff = value - lastSigned; writer.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(diff)); lastSigned = value; }
private void WriteWayInfo(SWay way) { infoWriter.Write7BitEncodedInt(way.Id); var rect = way.Rect; infoWriter.Write(rect.MinLat); infoWriter.Write(rect.MinLon); infoWriter.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(way.MidLat - rect.MinLat)); infoWriter.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(way.MidLon - rect.MinLon)); infoWriter.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(rect.MaxLat - way.MidLat)); infoWriter.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(rect.MaxLon - way.MidLon)); infoLength = infoStream.Position; }