steinmetz
Steinmetz (german for stonemason) is a tile generator for mapping applications.
This repository contains the core code that powers derived applications (you can find the completed and planned applications in the README file below.)
Find a full example here to run yourself.
Installation & Use
For programmatic usage (use in your Node.js application) install via NPM. Click here to find the package's page.
npm install --save steinmetz
Objectives
- Prioritize objectives. (90443d7)
- Utilize GeoJSON for data objects.
- Provide a stream of rendered tiles, instead of writing files.
- Render points. (3d1c44e)
- Render polylines.
- Render polygons.
- Optimize object rendering.
- Complete writing documentation.
- Complete examples/wiki.
- Support configuration files.
- Support WebHooks and/or events for rendering lifecycle.
- Support exporting a manifest that would include all rendered tiles, E-Tags, labels, etc.
- Research into replacing the
canvas
dependency with something better, or with something that does not have so many other dependencies (Cairo specifically.) - Render tiles other than 256px squares.
Derivatives
- A file writer.
- A configurable HTTP server.
- A CLI application.
Dependencies
- Using
typescript
for source code. - Using
JSONStream
for non-blocking JSON reading/writing. - Using
sharp
for overlapping PNG files. - Using
canvas
for HTML5-like canvas interaction (this includes following thecanvas
instructions to install Cairo, too.) - Using
upng-js
for PNG encoding/decoding. - Using
pako
for zlib-like inflation/deflation.