]> git.openstreetmap.org Git - rails.git/blob - lib/quad_tile/quad_tile.h
86fa1802dfd117b7234a6ca1f50837152ed84e40
[rails.git] / lib / quad_tile / quad_tile.h
1 #include <math.h>
2
3 static inline unsigned int xy2tile(unsigned int x, unsigned int y)
4 {
5    unsigned int tile = 0;
6    int          i;
7
8    for (i = 15; i >= 0; i--)
9    {
10       tile = (tile << 1) | ((x >> i) & 1);
11       tile = (tile << 1) | ((y >> i) & 1);
12    }
13
14    return tile;
15 }
16
17 static inline unsigned int lon2x(double lon)
18 {
19    return round((lon + 180.0) * 65535.0 / 360.0);
20 }
21
22 static inline unsigned int lat2y(double lat)
23 {
24    return round((lat + 90.0) * 65535.0 / 180.0);
25 }