L.TileLayer.MBTiles = L.TileLayer.extend({
//db: SQLitePlugin
mbTilesDB: null,
initialize: function(url, options, db) {
this.mbTilesDB = db;
L.Util.setOptions(this, options);
},
getTileUrl: function (tilePoint) {
var z = tilePoint.z;
var x = tilePoint.x;
var y = tilePoint.y;
var base64Prefix = 'data:image/gif;base64,';
this.mbTilesDB.executeSql("SELECT tile_data FROM tiles WHERE zoom_level = ? AND tile_column = ? AND tile_row = ?", [z, x, y], function (res) {
tile.src = base64Prefix + res.rows[0].tile_data;
}, function (er) {
console.log('error with executeSql', er);
});
}
});
this.mbTilesPlugin.getTile({z: z, x: x, y: y}
L.TileLayer.MBTiles = L.TileLayer.extend({
mbTilesDB: null,
initialize: function(url, options, db) { this.mbTilesDB = db; L.Util.setOptions(this, options); },
_loadTile: function (tile, tilePoint) {
tile._layer = this; tile.onload = this._tileOnLoad; tile.onerror = this._tileOnError;
this._adjustTilePoint(tilePoint);
var z = this._getZoomForUrl();
var x = tilePoint.x; var y = tilePoint.y;
var base64Prefix = 'data:image/gif;base64,';
this.mbTilesDB.transaction(function(tx) { tx.executeSql("select * from tiles where zoom_level = ? and tile_column = ? and tile_row = ?;", [z, x, y], function (tx, res) { tile.src = base64Prefix + res.rows.item(0).tile_data;
this.fire('tileloadstart', { tile: tile, url: tile.src }); }, function (e) { console.log('error with executeSql: ', e.message); }); }); },});
var mbTileLayer = new L.TileLayer.MBTiles('', { minZoom : 17, maxZoom : 19, tms : true }, db);