A configurable and reusable CSV provider for Koop, created with Koop CLI
This provider can load a CSV file from a local path or a remote endpoint. The provided CSV file must include columns of latitude and longitude coordinates.
- fully configurable
- support multiple CSV sources
- support local file path or remote endpoint
- support multiple CSV files for a single source
- parse boolean and numeric values automatically
- stream processing
with npm
npm install koop-provider-csv
with Koop CLI for your Koop app
koop add provider koop-provider-csv
Once installed, this provider enables routes like
/koop-provider-csv/:id/FeatureServer/*
where id
is the unique ID for a source CSV defined in the configuration file.
For example, this route allows to query a CSV file with ID my-csv
:
/koop-provider-csv/my-csv/FeatureServer/0/query
This provider is configured with config and all configuration files are in the config
directory.
A configuration looks like this:
{
// configuration namespace for this provider plugin
"koop-provider-csv": {
// define one or multiple CSV sources
"sources": {
// a unique ID for each source, which is used in the query route
"my-csv": {
// [optional] a URL for the source CSV
"url": "url_to_csv",
// [optional] a file path or a glob pattern to local CSV file(s)
"path": "path_to_csv",
// [required] point coordinate columns
"geometryColumns": {
"longitude": "longitude_column_name",
"latitude": "latitude_column_name"
},
// [optional] ArcGIS service metadata
// See https://koopjs.github.io/docs/development/provider/model#adding-provider-metadata-to-the-geojson
"metadata": {
"idField": "id_column_name"
}
}
}
}
}
See config/example-with-path.json
or config/example-with-url.json
for full example configurations.
$ npm start
A dev server will be running at http://localhost:8080
. By default, it will use with NODE_ENV=dev
and the dev configuration config/dev.json
should be created beforehand.
$ npm test
MIT