Skip to content

Commit

Permalink
Merge branch 'master' of github.com:mapbox/tilestream
Browse files Browse the repository at this point in the history
  • Loading branch information
Young Hahn committed Feb 24, 2011
2 parents 6019f09 + 13d625b commit 37318fa
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 56 deletions.
2 changes: 1 addition & 1 deletion .ndistro
Expand Up @@ -16,7 +16,7 @@ module developmentseed openlayers_slim v1.9
module headjs headjs v0.8
module developmentseed handlebars.js ds-v0.1
module coolaj86 node-jquery v1.4.4
module developmentseed node-sqlite3 1.0.3 sqlite
module developmentseed node-sqlite3 2.0.2 sqlite3
module developmentseed bones 0.0.1

# untagged
Expand Down
77 changes: 22 additions & 55 deletions server/models-server.js
Expand Up @@ -133,53 +133,30 @@ MBTiles.prototype.info = function(callback) {
// Load metadata table
function() {
var end = this;
that.db.prepare(
'SELECT * FROM metadata;',
function(err, statement) {
if (err || !statement) end(err);
var next = function(err, row) {
if (err || !row) {
statement.finalize(function() {
end(err, info);
});
} else {
info[row.name] = row.value;
statement.step(next);
}
}
statement.step(next);
that.db.all("SELECT name, value FROM metadata", function(err, rows) {
if (rows) for (var i = 0; i < rows.length; i++) {
info[rows[i].name] = rows[i].value;
}
);
end(err);
});
},
// Determine min/max zoom if needed
function(err) {
if (err) return callback(err);
if (typeof info.maxzoom !== 'undefined'
&& typeof info.minzoom !== 'undefined') return this(null);

var group = this.group();
var zoomquery = function(zoom, callback) {
that.db.prepare(
'SELECT zoom_level '
+ 'FROM tiles '
+ 'WHERE zoom_level = ? '
+ 'LIMIT 1;',
function(err, statement) {
if (err || !statement) return callback(err);
statement.bind(1, zoom, function() {
statement.step(function(err, row) {
statement.finalize(function() {
callback(err, row);
});
});
});
}
);
};

var zoomquery = that.db.prepare('SELECT zoom_level FROM tiles ' +
'WHERE zoom_level = ? LIMIT 1');
for (var i = 0; i < 30; i++) {
zoomquery(i, group());
zoomquery.get(i, group());
}
zoomquery.finalize();
},
function(err, rows) {
if (err) throw err;
if (!err && rows) {
var zooms = _.filter(rows, function(row) { return row; }),
zooms = _.pluck(zooms, 'zoom_level');
Expand All @@ -190,31 +167,20 @@ MBTiles.prototype.info = function(callback) {
},
// Determine bounds if needed
function(err) {
if (err) return callback(err);
if (info.bounds) return this();
if (typeof info.minzoom === 'undefined') return this();

var next = this;
Step(
function() {
var callback = this;
that.db.prepare(
'SELECT '
+ 'MAX(tile_column) AS maxx, '
+ 'MIN(tile_column) AS minx, '
+ 'MAX(tile_row) AS maxy, '
+ 'MIN(tile_row) AS miny '
+ 'FROM tiles '
+ 'WHERE zoom_level = ?;',
function(err, statement) {
if (err || !statement) return callback(err);
statement.bind(1, info.minzoom, function() {
statement.step(function(err, row) {
statement.finalize(function() {
callback(err, row);
});
});
});
}
that.db.get(
'SELECT MAX(tile_column) AS maxx, ' +
'MIN(tile_column) AS minx, MAX(tile_row) AS maxy, ' +
'MIN(tile_row) AS miny FROM tiles ' +
'WHERE zoom_level = ?',
info.minzoom,
this
);
},
function(err, row) {
Expand All @@ -233,7 +199,8 @@ MBTiles.prototype.info = function(callback) {
);
},
// Return info
function() {
function(err) {
if (err) return callback(err);
info.minzoom = parseInt(info.minzoom);
info.maxzoom = parseInt(info.maxzoom);
info.bounds = _.map(info.bounds.split(','), function(val) { return parseFloat(val) });
Expand Down

0 comments on commit 37318fa

Please sign in to comment.