Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A streaming tilelive source for CSV inputs
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.travis.yml
CHANGELOG.md
README.md
index.js
package.json

README.md

Build
Status

tilelive-csvin

A tilelive provider for CSV inputs that supports streaming reads.

Usage

This example requires @mojodna's fork of mbtiles for createWriteStream().

"use strict";

var MBTiles = require("mbtiles"),
    tilelive = require("tilelive");

var CSV = require("tilelive-csv")(tilelive);

new CSV("csvin+file://./data.csv?delimiter=\t&encoding=base64", function(err, src) {
  new MBTiles("mbtiles://./tiles.mbtiles", function(err, sink) {
    src.createReadStream().pipe(sink.createWriteStream());
  });
});

Options

The following query parameters are recognized:

  • delimiter - Column delimiter. Defaults to ,.
  • encoding - Option source encoding. Defaults to null. Other valid values: base64.
  • columnIndex - 0-based index for the column containing data. Defaults to 1.

Supported Protocols

This provider understands the file: (e.g. csvin+file://./stuff.csv) and stdin: protocols.

Why?

CSV is a popular format with the Big Data set.

Streaming

For sparsely filled or unknown bounding boxes, iterating over a known list of tiles is more efficient than using a tilelive Scheme.

getInfo()?

That's not implemented. You'll want to fake it by generating your own TileJSON separately. Perhaps one could be provided as a query parameter? (Patches welcomed!)

Base64 Encoding?

CSV is a text-based format, after all.

Writing?

Nope. Why?

Random Access (getTile())?

Nope.

Something went wrong with that request. Please try again.