com.onthegomap.planetiler.geo.TileOrder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of planetiler-core Show documentation
Show all versions of planetiler-core Show documentation
Planetiler is tool to build planet-scale vector tilesets from OpenStreetMap data fast.
The newest version!
package com.onthegomap.planetiler.geo;
import com.onthegomap.planetiler.archive.WriteableTileArchive;
import java.util.function.IntFunction;
import java.util.function.ToDoubleBiFunction;
import java.util.function.ToIntFunction;
/**
* Controls the sort order of {@link com.onthegomap.planetiler.collection.FeatureGroup}, which determines the ordering
* of {@link com.onthegomap.planetiler.archive.TileEncodingResult}s when written to
* {@link WriteableTileArchive.TileWriter}.
*/
public enum TileOrder {
TMS(TileCoord::encoded, TileCoord::decode, TileCoord::progressOnLevel),
HILBERT(TileCoord::hilbertEncoded, TileCoord::hilbertDecode, TileCoord::hilbertProgressOnLevel);
private final ToIntFunction encode;
private final IntFunction decode;
private final ToDoubleBiFunction progressOnLevel;
private TileOrder(ToIntFunction encode, IntFunction decode,
ToDoubleBiFunction progressOnLevel) {
this.encode = encode;
this.decode = decode;
this.progressOnLevel = progressOnLevel;
}
public int encode(TileCoord coord) {
return encode.applyAsInt(coord);
}
public TileCoord decode(int encoded) {
return decode.apply(encoded);
}
public double progressOnLevel(TileCoord coord, TileExtents extents) {
return progressOnLevel.applyAsDouble(coord, extents);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy