leaflet-tilelayer-mbtiles-ts
Version:
Load MBTiles packages into Leaflet maps (Typescript fork)
112 lines (111 loc) • 3.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var SQL = require("sql.js");
var MBTilesReader = /** @class */ (function () {
function MBTilesReader(buffer) {
this.initialized = false;
var uInt8Array = new Uint8Array(buffer);
try {
this.db = new SQL.Database(uInt8Array);
this.metadataStmt = this.db.prepare('SELECT value FROM metadata WHERE name = :key');
this.tilesStmt = this.db.prepare('SELECT tile_data FROM tiles WHERE tile_column = :x AND tile_row = :y AND zoom_level = :z');
this.initialized = true;
}
catch (e) {
throw new Error(e);
}
}
Object.defineProperty(MBTilesReader.prototype, "isLoaded", {
get: function () {
return this.initialized;
},
enumerable: false,
configurable: true
});
MBTilesReader.prototype.getTile = function (x, y, z) {
var data = this.tilesStmt.getAsObject({
':x': x,
':y': y,
':z': z,
});
return data && data.tile_data ? data.tile_data : null;
};
MBTilesReader.prototype.getMetadata = function (key) {
return this.metadataStmt.getAsObject({
':key': key,
});
};
Object.defineProperty(MBTilesReader.prototype, "attribution", {
get: function () {
var value = this.getMetadata('attribution').value;
return value ? value.toString() : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "description", {
get: function () {
var value = this.getMetadata('description').value;
return value ? value.toString() : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "center", {
get: function () {
var value = this.getMetadata('center').value;
return value ? value.toString().split(',') : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "format", {
get: function () {
var value = this.getMetadata('format').value;
return value ? value.toString() : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "bounds", {
get: function () {
var value = this.getMetadata('bounds').value;
return value ? value.toString().split(',') : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "minZoom", {
get: function () {
var value = this.getMetadata('minZoom').value;
return value ? Number(value) : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "maxZoom", {
get: function () {
var value = this.getMetadata('maxZoom').value;
return value ? Number(value) : null;
},
enumerable: false,
configurable: true
});
Object.defineProperty(MBTilesReader.prototype, "name", {
get: function () {
var value = this.getMetadata('name').value;
return value ? value.toString() : null;
},
enumerable: false,
configurable: true
});
MBTilesReader.prototype.close = function () {
if (this.initialized) {
// this.metadataStmt.free();
// this.tilesStmt.free();
this.db.close();
}
};
return MBTilesReader;
}());
exports.default = MBTilesReader;