localdata-tiles serves the tiled raster maps for LocalData using a fork of the nodetiles rendering library. It provides PNG tiles and UTF grids for LocalData surveys.
To run locally on OS X:
Clone and run npm install. You may need to run brew install cairo and confirm
the installation succeeded (check brew doctor). You may also need to brew install fontconfig and pixman.
If you get more Cairo-related errors, you may need to explicitly say where to look for libraries: export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig
Copy sample.env and update the values to match your environment.
Using env-run, run envrun -e your-brand-new.env -p 3001 node server.js
Follow the instructions for using the cairo buildpack when creating a Heroku app.
You'll need an SSL key and cert in:
/Users/coolguy/.ssh/localdata-key.pem
/Users/coolguy/.ssh/localdata-cert.pem
Then run PORT=4334 bin/fakeroku 3001
To define a layer, POST some application/json to /surveys/SURVEYID/tile.json with the following format:
{
"select": {"entries.responses": 1},
"query": {},
"styles": "Map {\n background-color: rgba(0,0,0,0);\n}\n\n#localdata {\n [zoom >= 14] {\n line-color:#fff;\n line-width:0.5;\n line-opacity:0.5;\n }\n\n polygon-opacity:0.85;\n polygon-fill: #801020;\n\n [\"responses.What-is-the-built-character\" = \"Medium\"] {\n polygon-fill: #102080;\n }\n [\"responses.Is-there-anything-else-you-would-like-to-say-about-housing-in-San-Francisco.length\" > 0] {\n polygon-fill: #102080;\n }\n}"
}The styles field contains a string with the Carto style sheet.
You can also issue a GET to /surveys/SURVEYID/tile.json?layerDefinition=LAYERDEF, where LAYERDEF is the (url-encoded) JSON from the POST.
In either case, the server will respond with a tile.json that includes the appropriate URLs for