❮ Projects Lambda Tilegarden

At Azavea, we frequently have custom map layers or features stored in PostGIS that we need to integrate into front-end visualizations and tools. Tools like Windshaft and Geoserver can generate and format raster tiles, but require significant configuration and dedicated infrastructure.

In addition, some of the work that requires dynamic server-side rendering of custom data into raster tiles could be avoided by taking advantage of the potential of vector tiles for client-side dynamic interactivity.

The goal of this project is to create a configurable, adaptable, and fully open-source toolchain and demo implementation for using Lambda and a PostGIS data source to produce custom tiles on demand.

Milestones

Preparation

In the beginning of the project you will prepare by:

  • Familiarization with Lambnik
  • Familiarization with Mapnik styling and rendering
  • Deploy Lambnik and successfully run demo page

Coding Phase 1

The Python bindings for Mapnik are incomplete and not actively maintained. The Node version is more complete, including support for vector tiles.

  • Reimplement Lambnik in Node.js
  • Outcome: a proof-of-concept raster tile source serving custom data via Node on Lambda.

Coding Phase 2

In this coding phase, you will be configuring, deploying and testing the new Node.js-based Lambnik server.

  • Make raster tile styling configurable (load the Mapnik XML from a configurable source)
  • Streamline and document the deployment process
  • Outcome: a basic raster tile source for custom data that could be added to a project in lieu of Windshaft.

Coding Phase 3

In the final coding phase you will be integrating vector tile support.

  • Add vector tile generation
  • Pull layer spec from configurable source
  • Make styling configurable and fully open (i.e. not Mapbox-hosted)
  • Create a static HTML demo page
    • Using Mapbox GL JS
    • Possibly also using Leaflet
  • Outcome: a proof-of-concept demo of a vector-tile-based interactive map of custom data.
Requirements
  • Python experience
  • Javascript experience
  • Geospatial experience preferred
Difficulty

Medium

Until next time

Summer 2018 session is closed

Applications for the Summer 2018 session of the Azavea Open Source Fellowship Program are now closed. Sign up for notifications about future opportunities.