Name: tilelive
Owner: kartotherian
Description: fast interface to tiles with pluggable backends
Created: 2016-04-08 01:08:03.0
Updated: 2016-04-08 01:08:04.0
Pushed: 2016-04-06 09:30:49.0
Size: 4112
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Tilelive doesn't ship with any implementing modules by default. To register a module as one tilelive recognizes:
require('[implementation]').registerProtocols(tilelive);
tilelive.list(source, callback)
: Lists all tilesets in a directory. source
is a folder that is used by registered implementations to search for individual tilesets. callback
receives an error object (or null
) and a hash hash with keys being Tilestore IDs and values being Tilestore URIs. Example:
"world-light": "mbtiles:///path/to/file/world-light.mbtiles",
"mapquest": "tilejson:///path/to/file/mapquest.tilejson"
tilelive.findID(source, id, callback)
: Looks for a particular tileset ID in a directory. callback
receives an error object (or null
) and the URI of the tileset.
tilelive.load(uri, callback)
: Loads the Tilestore object associated with the specified uri
. callback
receives an error object (or null
) and the Tilestore object.
tilelive.info(uri, callback)
: Loads the Tilestore object associated with the specified uri
and retrieves its metadata in a TileJSON compliant format. callback
receives an error object (or null
), the metadata hash and the Tilestore object.
tilelive.all(source, callback)
: Loads metadata in a TileJSON compliant format for all tilesets in the source
directory. callback
receives an error object (or null
) and an array with TileJSON metadata about each tileset in that directory.
tilelive.verify(tilejson)
: Validates a TileJSON object and returns error objects for invalid entries.
Tilelive provides an implementation of node object streams for copying tiles from one source to another.
// Copy all tiles and metadata from source A to source B.
var get = tilelive.createReadStream(sourceA);
var put = tilelive.createWriteStream(sourceB);
get.pipe(put);
put.on('finish', function() {
console.log('done!');
});
See tilelive-copy
and the streams tests for example usage of copy streams.
Tilelive can split a read operation into an arbitrary number of jobs. Pass a job
parameter to options when using tilelive.createReadStream
or tilelive.deserialize
:
readable = tilelive.createReadStream(src, { type: 'scanline', job: { total: 4, num: 1 } });
This instructs tilelive to only read tiles that would fall into job 1
of 4
. A complete read would mean four calls each with a different num
.
tilelive can be used to copy data between tilestores. For a full list of options, run tilelive-copy
.
To run the tests
npm test