Kothic JS is a full-featured JavaScript map rendering engine using HTML5 Canvas.
It was initially developed as a JavaScript port of Kothic rendering engine written in Python.
kothic-node is a KothicJS port, designed to work as a server-side renderer. Due to incompatibility with original KothicJS in almost every aspect, it deserves a separate repository.
Unlike original KothicJS kothic-node isn't limited to rendering OpenStreetMap data only. Any geo data in GeoJSON will be ok.
Instead of using HTML5 Canvas, kothic-node relies on node-canvas module.
Warning: kothic-node is a subject of active (but very slow) development and it's not intended for production use yet.
- Rendering any GeoJSON to an image
- Native MapCSS support without any additional data preparation
- GeoJSON as an internal data representation format
- Browser-compatible design, no NodeJS specific API is used
- As little dependencies as possible
Install the library
npm i kothic
const css = "way { width: 1; color: red;}";
const kothic = new Kothic(css, {
//Synchronous mode for testing reasons
getFrame: (callback) => callback(),
browserOptimizations: false,
gallery: {
localImagesDirectory: '../../sandbox/maki/png'
},
mapcss: {
cache: {},
locales: []
},
debug: true
});
Kothic.render(
canvas, // canvas element (or its id) to render on
geojson, // GeoJSON data to render
zoom, // zoom level
callback, // onRenderingComplete callback
);
locales
Kothic-JS supports map localization based on name:lang tags. Renderer will check all mentioned languages in order of persence. If object doesn't have localized name, name tag will be used.
Kothic JS is licensed under a BSD license, and we'll be glad to accept your contributions!