...
|
...
|
@@ -27,18 +27,17 @@ |
|
|
|
|
|
#include "RMTile.h"
|
|
|
#import <math.h>
|
|
|
#import <stdio.h>
|
|
|
|
|
|
uint64_t RMTileHash(RMTile tile)
|
|
|
{
|
|
|
uint64_t accumulator = 0;
|
|
|
|
|
|
for (int i = 0; i < tile.zoom; i++) {
|
|
|
accumulator |= ((uint64_t)tile.x & (1LL<<i)) << i;
|
|
|
accumulator |= ((uint64_t)tile.y & (1LL<<i)) << (i+1);
|
|
|
}
|
|
|
accumulator |= 1LL<<(tile.zoom * 2);
|
|
|
|
|
|
return accumulator;
|
|
|
uint64_t zoom = (uint64_t) tile.zoom & 0xFFLL; // 8bits, 256 levels
|
|
|
uint64_t x = (uint64_t) tile.x & 0xFFFFFFFLL; // 28 bits
|
|
|
uint64_t y = (uint64_t) tile.y & 0xFFFFFFFLL; // 28 bits
|
|
|
|
|
|
uint64_t hash = (zoom << 56) | (x << 28) | (y << 0);
|
|
|
|
|
|
return hash;
|
|
|
}
|
|
|
|
|
|
RMTile RMTileDummy()
|
...
|
...
|
@@ -86,4 +85,4 @@ TileRect TileRectIntersection(TileRect one, TileRect two) |
|
|
}
|
|
|
|
|
|
// Calculate and return the union of two rectangles
|
|
|
TileRect TileRectUnion(TileRect one, TileRect two);*/ |
|
|
\ No newline at end of file |
|
|
TileRect TileRectUnion(TileRect one, TileRect two);*/ |
...
|
...
|
|