fixed windshaft provider
This commit is contained in:
parent
f76ac44d56
commit
6788237ec7
@ -179,6 +179,13 @@
|
||||
};
|
||||
},
|
||||
|
||||
setOptions: function(opt) {
|
||||
for(var k in opt) {
|
||||
this.options[k] = opt[k];
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
_extraParams: function() {
|
||||
if (this.options.extra_params) {
|
||||
var p = [];
|
||||
@ -219,6 +226,7 @@
|
||||
* `zoom` quadtree zoom level
|
||||
*/
|
||||
_getTileData: function(coord, zoom, callback) {
|
||||
var self = this;
|
||||
var prof_fetch_time = Profiler.metric('ProviderJSON:tile_fetch_time').start();
|
||||
var subdomains = this.options.subdomains || '0123';
|
||||
var index = Math.abs(coord.x + coord.y) % subdomains.length;
|
||||
@ -231,7 +239,7 @@
|
||||
var extra = this._extraParams();
|
||||
torque.net.get( url + (extra ? "?" + extra: ''), function (data) {
|
||||
if (data && data.responseText) {
|
||||
var rows = JSON.parse(data.responseText).rows;
|
||||
var rows = JSON.parse(data.responseText);
|
||||
callback(self.proccessTile(rows, coord, zoom));
|
||||
} else {
|
||||
callback(null);
|
||||
@ -245,7 +253,7 @@
|
||||
end: this.options.end * 1000,
|
||||
step: this.options.step,
|
||||
steps: this.options.steps,
|
||||
columnType: this.options.is_time ? 'date': 'number'
|
||||
columnType: this.options.column_type
|
||||
};
|
||||
},
|
||||
|
||||
@ -303,7 +311,9 @@
|
||||
var named = this.options.named_map;
|
||||
|
||||
if(named) {
|
||||
url = this._tilerHost() + "/maps/" + named.name + "/jsonp"
|
||||
//tiles/template
|
||||
url = this._tilerHost() + "/tiles/template/" + named.name + "/jsonp"
|
||||
//url = this._tilerHost() + "/maps/" + named.name + "/jsonp"
|
||||
} else {
|
||||
layergroup = {
|
||||
"version": "1.0.1",
|
||||
@ -330,10 +340,16 @@
|
||||
"?config=" + encodeURIComponent(JSON.stringify(layergroup)) +
|
||||
"&callback=?" + (extra ? "&" + extra: '');
|
||||
|
||||
torque.net.get(url, function (data) {
|
||||
torque.net.jsonp(url, function (data) {
|
||||
if (data) {
|
||||
//TODO: update options with layer metadata
|
||||
self.templateUrl = self.url() + "/tiles/layergroup/" + data.layergroup_id + "/{z}/{x}/{y}.torque.json";
|
||||
var torque_key = Object.keys(data.metadata.torque)[0]
|
||||
var opt = data.metadata.torque[torque_key];
|
||||
for(var k in opt) {
|
||||
self.options[k] = opt[k];
|
||||
}
|
||||
self.templateUrl = self.url() + "/tiles/layergroup/" + data.layergroupid + "/" + torque_key + "/{z}/{x}/{y}.json.torque";
|
||||
self._setReady(true);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -3,10 +3,15 @@ var lastCall;
|
||||
var old_net;
|
||||
module('provider.windshaft', {
|
||||
setup: function() {
|
||||
old_net = torque.net.get;
|
||||
old_net = torque.net.jsonp;
|
||||
old_get = torque.net.get;
|
||||
torque.net.jsonp = function(url, callback) {
|
||||
lastCall = url;
|
||||
callback({ layergroupid: 'testlg', metadata: { torque: { 0: { data_steps:10 }} } });
|
||||
};
|
||||
torque.net.get = function(url, callback) {
|
||||
lastCall = url;
|
||||
callback({ layergroup_id: 'testlg' });
|
||||
callback(null);
|
||||
};
|
||||
windshaft = new torque.providers.windshaft({
|
||||
table: 'test',
|
||||
@ -21,7 +26,8 @@ module('provider.windshaft', {
|
||||
});
|
||||
},
|
||||
teardown: function() {
|
||||
torque.net.get = old_net;
|
||||
torque.net.jsonp = old_net;
|
||||
torque.net.get = old_get;
|
||||
}
|
||||
});
|
||||
|
||||
@ -41,6 +47,8 @@ module('provider.windshaft', {
|
||||
|
||||
var url = "http://rambo.cartodb.com:80/tiles/layergroup?config=" + encodeURIComponent(JSON.stringify(layergroup)) + "&callback="
|
||||
equal(lastCall.indexOf(url), 0);
|
||||
equal(windshaft.options.data_steps, 10);
|
||||
|
||||
});
|
||||
|
||||
test("url", function() {
|
||||
@ -60,14 +68,14 @@ module('provider.windshaft', {
|
||||
name: 'test_named'
|
||||
}
|
||||
});
|
||||
var url = "http://rambo.cartodb.com:80/maps/test_named/jsonp?config";
|
||||
var url = "http://rambo.cartodb.com:80/tiles/template/test_named/jsonp?config";
|
||||
equal(lastCall.indexOf(url), 0);
|
||||
});
|
||||
|
||||
test("fetch tile", function() {
|
||||
windshaft._ready = true;
|
||||
windshaft.getTileData({x: 0, y: 1}, 2, function() {});
|
||||
equal(lastCall,"http://rambo.cartodb.com:80/tiles/layergroup/testlg/2/0/1.torque.json?testing=abcd%25");
|
||||
equal(lastCall,"http://rambo.cartodb.com:80/tiles/layergroup/testlg/0/2/0/1.json.torque?testing=abcd%25");
|
||||
});
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user