added method to aggrerate by key
This commit is contained in:
parent
a113a2088f
commit
1add37713a
@ -22,6 +22,35 @@
|
||||
|
||||
json.prototype = {
|
||||
|
||||
//
|
||||
// return the data aggregated by key:
|
||||
// {
|
||||
// key0: 12,
|
||||
// key1: 32
|
||||
// key2: 25
|
||||
// }
|
||||
//
|
||||
aggregateByKey: function(rows) {
|
||||
function getKeys(row) {
|
||||
var HEADER_SIZE = 3;
|
||||
var valuesCount = row.data[2];
|
||||
var keys = {};
|
||||
for (var s = 0; s < valuesCount; ++s) {
|
||||
keys[row.data[HEADER_SIZE + s]] = row.data[HEADER_SIZE + valuesCount + s];
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
var keys = {};
|
||||
for (r = 0; r < rows.length; ++r) {
|
||||
var rowKeys = getKeys(rows[r]);
|
||||
for(var k in rowKeys) {
|
||||
keys[k] = keys[k] || 0;
|
||||
keys[k] += rowKeys[k];
|
||||
}
|
||||
}
|
||||
return keys;
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ -131,6 +160,26 @@
|
||||
return this.options.url;
|
||||
},
|
||||
|
||||
|
||||
getTile: function(coord, zoom, callback) {
|
||||
var template = this.url();
|
||||
template = template
|
||||
.replace('{x}', coord.x)
|
||||
.replace('{y}', coord.y)
|
||||
.replace('{z}', zoom);
|
||||
|
||||
var self = this;
|
||||
var fetchTime = Profiler.metric('jsonarray:fetch time');
|
||||
fetchTime.start();
|
||||
torque.net.get(template, function (data) {
|
||||
fetchTime.end();
|
||||
if(data) {
|
||||
data = JSON.parse(data.responseText);
|
||||
}
|
||||
callback(data);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* `coord` object like {x : tilex, y: tiley }
|
||||
* `zoom` quadtree zoom level
|
||||
|
Loading…
Reference in New Issue
Block a user