Skip to content

Commit 2bfd621

Browse files
committed
#1 connecting to backend
1 parent 3cd3199 commit 2bfd621

File tree

4 files changed

+400
-291
lines changed

4 files changed

+400
-291
lines changed

config/default.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 0.2.3
1+
version: 0.2.9
22
interfaces:
33
webserver:
44
enabled: true
@@ -33,6 +33,7 @@ store:
3333
redis:
3434
#dsn: redis://127.0.0.1
3535
dispatch:
36+
enabled: false
3637
redis:
3738
#dsn: redis://127.0.0.1
3839
stomp:
@@ -42,7 +43,7 @@ store:
4243
#dsn: redis://127.0.0.1
4344
logger:
4445
console:
45-
level: trace
46+
level: debug
4647
# loggly:
4748
# level: trace
4849
# token: your-api-token
@@ -61,7 +62,7 @@ store:
6162
beacon:
6263
wait: true
6364
dispatch:
64-
enabled: true
65+
enabled: false
6566
expires: 60
6667
authentication:
6768
basicauth:

geohash.js

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
// geohash.js
2+
// Geohash library for Javascript
3+
// (c) 2008 David Troy
4+
// Distributed under the MIT License
5+
6+
BITS = [16, 8, 4, 2, 1];
7+
8+
BASE32 = "0123456789bcdefghjkmnpqrstuvwxyz";
9+
NEIGHBORS = { right : { even : "bc01fg45238967deuvhjyznpkmstqrwx" },
10+
left : { even : "238967debc01fg45kmstqrwxuvhjyznp" },
11+
top : { even : "p0r21436x8zb9dcf5h7kjnmqesgutwvy" },
12+
bottom : { even : "14365h7k9dcfesgujnmqp0r2twvyx8zb" } };
13+
BORDERS = { right : { even : "bcfguvyz" },
14+
left : { even : "0145hjnp" },
15+
top : { even : "prxz" },
16+
bottom : { even : "028b" } };
17+
18+
NEIGHBORS.bottom.odd = NEIGHBORS.left.even;
19+
NEIGHBORS.top.odd = NEIGHBORS.right.even;
20+
NEIGHBORS.left.odd = NEIGHBORS.bottom.even;
21+
NEIGHBORS.right.odd = NEIGHBORS.top.even;
22+
23+
BORDERS.bottom.odd = BORDERS.left.even;
24+
BORDERS.top.odd = BORDERS.right.even;
25+
BORDERS.left.odd = BORDERS.bottom.even;
26+
BORDERS.right.odd = BORDERS.top.even;
27+
28+
function refine_interval(interval, cd, mask) {
29+
if (cd&mask)
30+
interval[0] = (interval[0] + interval[1])/2;
31+
else
32+
interval[1] = (interval[0] + interval[1])/2;
33+
}
34+
35+
function calculateAdjacent(srcHash, dir) {
36+
srcHash = srcHash.toLowerCase();
37+
var lastChr = srcHash.charAt(srcHash.length-1);
38+
var type = (srcHash.length % 2) ? 'odd' : 'even';
39+
var base = srcHash.substring(0,srcHash.length-1);
40+
if (BORDERS[dir][type].indexOf(lastChr)!=-1)
41+
base = calculateAdjacent(base, dir);
42+
return base + BASE32[NEIGHBORS[dir][type].indexOf(lastChr)];
43+
}
44+
45+
function decodeGeoHash(geohash) {
46+
var is_even = 1;
47+
var lat = []; var lon = [];
48+
lat[0] = -90.0; lat[1] = 90.0;
49+
lon[0] = -180.0; lon[1] = 180.0;
50+
lat_err = 90.0; lon_err = 180.0;
51+
52+
for (i=0; i<geohash.length; i++) {
53+
c = geohash[i];
54+
cd = BASE32.indexOf(c);
55+
for (j=0; j<5; j++) {
56+
mask = BITS[j];
57+
if (is_even) {
58+
lon_err /= 2;
59+
refine_interval(lon, cd, mask);
60+
} else {
61+
lat_err /= 2;
62+
refine_interval(lat, cd, mask);
63+
}
64+
is_even = !is_even;
65+
}
66+
}
67+
lat[2] = (lat[0] + lat[1])/2;
68+
lon[2] = (lon[0] + lon[1])/2;
69+
70+
return { latitude: lat, longitude: lon};
71+
}
72+
73+
function encodeGeoHash(latitude, longitude) {
74+
var is_even=1;
75+
var i=0;
76+
var lat = []; var lon = [];
77+
var bit=0;
78+
var ch=0;
79+
var precision = 12;
80+
geohash = "";
81+
82+
lat[0] = -90.0; lat[1] = 90.0;
83+
lon[0] = -180.0; lon[1] = 180.0;
84+
85+
while (geohash.length < precision) {
86+
if (is_even) {
87+
mid = (lon[0] + lon[1]) / 2;
88+
if (longitude > mid) {
89+
ch |= BITS[bit];
90+
lon[0] = mid;
91+
} else
92+
lon[1] = mid;
93+
} else {
94+
mid = (lat[0] + lat[1]) / 2;
95+
if (latitude > mid) {
96+
ch |= BITS[bit];
97+
lat[0] = mid;
98+
} else
99+
lat[1] = mid;
100+
}
101+
102+
is_even = !is_even;
103+
if (bit < 4)
104+
bit++;
105+
else {
106+
geohash += BASE32[ch];
107+
bit = 0;
108+
ch = 0;
109+
}
110+
}
111+
return geohash;
112+
}

0 commit comments

Comments
 (0)