assets | ||
config/environments | ||
docker | ||
docs | ||
lib | ||
scripts | ||
test | ||
.eslintignore | ||
.eslintrc.js | ||
.gitignore | ||
.travis.yml | ||
app.js | ||
carto-package.json | ||
HOWTO_RELEASE | ||
LICENSE | ||
NEWS.md | ||
package-lock.json | ||
package.json | ||
README.md |
Windshaft-CartoDB
This is the CARTO Maps API tiler. It extends Windshaft and exposes a complete web service with extra functionality:
- Intantiate
Anonymous Maps
defined through CARTO's map configuration (MapConfig). - Create
Named Maps
based on customizables templates. - Get map previews through
Static Maps
API. - Render maps with large amount of data faster using
Tile Aggregation
. - Build advanced maps with enriched data through
Analyses Extension
. - Fetch tabular data from analysis nodes with
Dataviews
Install
Requirements
- Node 10.x
- npm 6.x
- PostgreSQL >= 10.0
- PostGIS >= 2.4
- CARTO Postgres Extension >= 0.24.1
- Redis >= 4
- libcairo2-dev, libpango1.0-dev, libjpeg8-dev and libgif-dev for server side canvas support
- C++11 (to build internal dependencies if needed)
Optional
PostGIS setup
A template_postgis
database is expected. One can be set up with
createdb --owner postgres --template template0 template_postgis
psql -d template_postgis -c 'CREATE EXTENSION postgis;'
Build
To fetch and build all node-based dependencies, run:
npm ci
Run
Create the ./config/environments/<env>.js
file (there are .example
files to start from). Look at ./lib/cartodb/server-options.js
for more on config.
node app.js <env>
Where <env>
is the name of a configuration file under ./config/environments/
.
Documentation
The docs directory contains different documentation resources, from higher level to more detailed ones: The Maps API defined the endpoints and their expected parameters and outputs.
Examples
CartoDB's Map Gallery showcases several examples of visualisations built on top of this.
Contributing
The issue tracker: github.
We love pull requests from everyone, see Contributing to Open Source on GitHub.
Submitting Contributions
- You will need to sign a Contributor License Agreement (CLA) before making a submission. Learn more here.
Developing with a custom windshaft version
If you plan or want to use a custom / not released yet version of windshaft (or any other dependency) the best option is to use npm link
. You can read more about it at npm-link: Symlink a package folder.
$ cd /path/to/windshaft/directory/
/path/to/windshaft/directory$ npm install
/path/to/windshaft/directory/$ npm link
$ cd /path/to/windshaft-cartodb/directory/
/path/to/windshaft-cartodb/directory$ npm link windshaft