Package com.google.common.geometry
Class S2PointCompression
java.lang.Object
com.google.common.geometry.S2PointCompression
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
(package private) static final class
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondecodePointsCompressed
(int numVertices, int level, LittleEndianInput decoder) decodePointsCompressed
(int numVertices, int level, InputStream input) Decode a list of points that were encoded usingencodePointsCompressed(java.util.List<com.google.common.geometry.S2Point>, int, java.io.OutputStream)
.(package private) static void
encodePointsCompressed
(List<S2Point> points, int level, LittleEndianOutput encoder) static void
encodePointsCompressed
(List<S2Point> points, int level, OutputStream output) Encode a list of points into an efficient, lossless binary representation, which can be decoded by callingdecodePointsCompressed(int, int, java.io.InputStream)
.private static S2Point
facePiQiToXyz
(int face, int pi, int qi, int level) private static double
piQiToST
(int pi, int level) private static int
siTiToPiQi
(long si, int level)
-
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 callingdecodePointsCompressed(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
- TheS2Cell
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 usingencodePointsCompressed(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
- TheS2Cell
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
-