kopia lustrzana https://github.com/onthegomap/planetiler
tweak
rodzic
875464a13f
commit
753a4aee03
|
@ -120,22 +120,23 @@ public class GeoUtils {
|
|||
}
|
||||
|
||||
private static final double QUANTIZED_WORLD_SIZE = Math.pow(2, 31);
|
||||
private static final double HALF_QUANTIZED_WORLD_SIZE = QUANTIZED_WORLD_SIZE / 2;
|
||||
private static final long LOWER_32_BIT_MASK = (1L << 32) - 1L;
|
||||
|
||||
public static long encodeFlatLocation(double lon, double lat) {
|
||||
double worldX = getWorldX(lon) / 2 + 0.5;
|
||||
double worldY = getWorldY(lat) / 2 + 0.5;
|
||||
long x = (long) (worldX * QUANTIZED_WORLD_SIZE);
|
||||
long y = (long) (worldY * QUANTIZED_WORLD_SIZE);
|
||||
return (x << 32) | y;
|
||||
double worldX = getWorldX(lon) + 1;
|
||||
double worldY = getWorldY(lat) + 1;
|
||||
long x = (long) (worldX * HALF_QUANTIZED_WORLD_SIZE);
|
||||
long y = (long) (worldY * HALF_QUANTIZED_WORLD_SIZE);
|
||||
return (x << 32) | (y & LOWER_32_BIT_MASK);
|
||||
}
|
||||
|
||||
public static double decodeWorldY(long encoded) {
|
||||
return ((((double) (encoded & LOWER_32_BIT_MASK)) / QUANTIZED_WORLD_SIZE) - 0.5) * 2;
|
||||
return (((double) (encoded & LOWER_32_BIT_MASK)) / HALF_QUANTIZED_WORLD_SIZE) - 1;
|
||||
}
|
||||
|
||||
public static double decodeWorldX(long encoded) {
|
||||
return ((((double) (encoded >>> 32)) / QUANTIZED_WORLD_SIZE) - 0.5) * 2;
|
||||
return (((double) (encoded >>> 32)) / HALF_QUANTIZED_WORLD_SIZE) - 1;
|
||||
}
|
||||
|
||||
public static double getZoomFromLonLatBounds(Envelope envelope) {
|
||||
|
|
Ładowanie…
Reference in New Issue