Class S2PointCompression

java.lang.Object
com.google.common.geometry.S2PointCompression

@GwtCompatible public final class S2PointCompression extends Object
  • Field Details

    • DERIVATIVE_ENCODING_ORDER

      private static final int DERIVATIVE_ENCODING_ORDER
      See Also:
  • Constructor Details

    • S2PointCompression

      private S2PointCompression()
  • Method Details

    • encodePointsCompressed

      public static void encodePointsCompressed(List<S2Point> points, int level, OutputStream output) throws IOException
      Encode a list of points into an efficient, lossless binary representation, which can be decoded by calling decodePointsCompressed(int, int, java.io.InputStream). The encoding is byte-compatible with the C++ version of the S2 library.

      Points that are snapped to the specified level will require approximately 4 bytes per point, while other points will require 24 bytes per point.

      Parameters:
      points - The list of points to encode.
      level - The S2Cell level at which points should be encoded.
      output - The output stream into which the encoding should be written.
      Throws:
      IOException - if there was a problem writing into the output stream.
    • encodePointsCompressed

      static void encodePointsCompressed(List<S2Point> points, int level, LittleEndianOutput encoder) throws IOException
      Throws:
      IOException
    • decodePointsCompressed

      public static List<S2Point> decodePointsCompressed(int numVertices, int level, InputStream input) throws IOException
      Decode a list of points that were encoded using encodePointsCompressed(java.util.List<com.google.common.geometry.S2Point>, int, java.io.OutputStream).

      Points that are snapped to the specified level will require approximately 4 bytes per point, while other points will require 24 bytes per point.

      Parameters:
      numVertices - The number of points to decode.
      level - The S2Cell level at which points are encoded.
      input - The input stream containing the encoded point data.
      Returns:
      the list of decoded points.
      Throws:
      IOException - if there was a problem reading from the input stream.
    • decodePointsCompressed

      static List<S2Point> decodePointsCompressed(int numVertices, int level, LittleEndianInput decoder) throws IOException
      Throws:
      IOException
    • siTiToPiQi

      private static int siTiToPiQi(long si, int level)
    • piQiToST

      private static double piQiToST(int pi, int level)
    • facePiQiToXyz

      private static S2Point facePiQiToXyz(int face, int pi, int qi, int level)