Cartolina – 3D terrain cartography for the web
Cartolina — 3D terrain cartography for the web
cartolina is an experimental software stack for a web-based 3D cartographic
terrain representation. It consists of cartolina-js, a frontend
library, and cartolina-tileserver, a backend tile server.
Quickstart
<div id="map"></div>
<script type="module">
import { map as createMap } from 'https://cdn.tspl.re/libs/cartolina/dist/current/cartolina.min.esm.js';
let map = createMap({
container: 'map',
style: 'https://cartolina.dev/assets/styles/quickstart.json',
position: ['obj', -118.302, 36.560, 'fix', 3313, -133, -25, 0.00, 33347, 45]
});
</script>
Features
-
interactive cartographic renditions of DEMs (digital elevation models) at arbitrary resolution and scale
-
hillshading based on a native lighting model
-
scale-dependent vertical exaggeration
-
bump-mapping based on satelitte or aerial imagery
-
background haze and foreground shadows
-
sun glints based on land-cover classifications
-
seamless support for high-latitude and polar regions
-
no inherent dateline or polar-cap issues
-
arbitrary frames of reference, including extra-terrestrial bodies for planetary science
-
point labels with well defined visual hierarchy
Components
- cartolina-js
- is a frontend rendering library, written in WebGL2, JavaScript and TypeScript.
- cartolina-tileserver
- is a Unix server deamon, written in C++, which processes geospatial data and streams them over the network in formats suitable for rendering by Cartolina JS.
You can find more information about the two components in their corresponding GitHub repositories (follow the links above).
License
cartolina is open source under a permissive BSD 2-clause license.
The tile server resources hosted at cdn.tspl.re and used throught the examples
on this website are free to use for development and evaluation. Contact me for any kind
of production or commercial use.