Windshaft-CartoDB
This is the CARTO Maps API tiler. It extends Windshaft and exposes a complete web service with extra functionality:
- Instantiate
Anonymous Mapsthrough CARTO's map configuration (MapConfig). - Create
Named Mapsbased on customizables templates. - Get map previews through
Static MapsAPI. - 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 document defines 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
$ npm install
$ npm link
$ cd /path/to/Windshaft-cartodb
$ npm link windshaft