예제 #1
0
 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);
 }
예제 #2
0
        public void WriteZigZag(long value)
        {
            var diff = value - lastSigned;

            writer.Write7BitEncodedInt(EncodeHelpers.EncodeZigZag(diff));
            lastSigned = value;
        }
예제 #3
0
        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;
        }