Serve local GeoJSON files as Koop services. Use as a standalone Koop instance or add to an existing Koop implementation.
Add the provider to your koop instance
sh $ npm install @koopjs/provider-file-geojson
Then register the provider with Koop in your server file.
const Koop = require('koop')
const koop = new Koop()
const provider = require('@koopjs/provider-file-geojson')
koop.register(provider)
The provider will look for requested geojson files in a /data
directory in the koop application root. For example, the following request will serve data from the file data/polygon-sample.geojson
:
$ curl http://localhost:8080/file-geojson/rest/services/polygon-sample/FeatureServer/0/query
The provider needs to know where to locate the GeoJSON files it should serve. A directory can be assign in several ways.
By default, the provider looks for files in the /data
directory in the koop application root. For example, the following request will serve data from the file data/polygon-sample.geojson
:
$ curl http://localhost:8080/file-geojson/rest/services/polygon-sample/FeatureServer/0/query
You can override where the provider looks by adding a dataDir
field to the provider's registration options:
const Koop = require('koop')
const koop = new Koop()
const provider = require('@koopjs/provider-file-geojson')
koop.register(provider, { dataDir: 'path-to-data-directory'})
You can also achieve the same by setting an environment variable KOOP_DATA_DIR=<path-to-directory>
. Paths should be relative to the koop server file.
All valid GeoJSON files can be served. Place them in the data directory and ensure they have a .geojson
file extension.
Request a particular file by using the (extension-less) file name as the :id
parameter in the URL. For example, when requesting data from the file point-fc.geojson
:
http://localhost:8080/file-geojson/rest/services/:id/FeatureServer/0/query
becomes:
http://localhost:8080/file-geojson/rest/services/point-fc/FeatureServer/0/query
Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.