All Projects → kosmtik → Kosmtik

kosmtik / Kosmtik

Licence: other
Make maps with OpenStreetMap and Mapnik

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Kosmtik

Osm2world
converter that creates three-dimensional models of the world from OpenStreetMap data
Stars: ✭ 330 (-45.99%)
Mutual labels:  openstreetmap
Mapbox Gl Native
Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL
Stars: ✭ 4,091 (+569.56%)
Mutual labels:  openstreetmap
Tilemaker
Make OpenStreetMap vector tiles without the stack
Stars: ✭ 468 (-23.4%)
Mutual labels:  openstreetmap
Privacy Redirect
A simple web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.
Stars: ✭ 342 (-44.03%)
Mutual labels:  openstreetmap
Vectiler
A vector tile, terrain and city 3d model builder and exporter
Stars: ✭ 394 (-35.52%)
Mutual labels:  openstreetmap
Overpass Turbo
A web based data mining tool for OpenStreetMap using the Overpass API.
Stars: ✭ 435 (-28.81%)
Mutual labels:  openstreetmap
Ariadna
Geocoder Ariadna on ElasticSearch with OpenStreetMap
Stars: ✭ 320 (-47.63%)
Mutual labels:  openstreetmap
Mapscii
🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows
Stars: ✭ 5,886 (+863.34%)
Mutual labels:  openstreetmap
Geo Golang
Go library to access geocoding and reverse geocoding APIs
Stars: ✭ 394 (-35.52%)
Mutual labels:  openstreetmap
Timezone Boundary Builder
A tool to extract data from Open Street Map (OSM) to build the boundaries of the world's timezones.
Stars: ✭ 469 (-23.24%)
Mutual labels:  openstreetmap
Fmm
Fast map matching, an open source framework in C++
Stars: ✭ 359 (-41.24%)
Mutual labels:  openstreetmap
Navit
The open source (GPL v2) turn-by-turn navigation software for many OS
Stars: ✭ 368 (-39.77%)
Mutual labels:  openstreetmap
Mapsui
Mapsui is a .NET Map component for WPF, Xamarin.Forms, Xamarin.Android, Xamarin.iOS and UWP
Stars: ✭ 447 (-26.84%)
Mutual labels:  openstreetmap
Name Suggestion Index
Canonical common brand names, operators, transit and flags for OpenStreetMap.
Stars: ✭ 332 (-45.66%)
Mutual labels:  openstreetmap
Osmtogeojson
convert osm to geojson
Stars: ✭ 493 (-19.31%)
Mutual labels:  openstreetmap
Tasking Manager
Tasking Manager - The tool to team up for mapping in OpenStreetMap
Stars: ✭ 328 (-46.32%)
Mutual labels:  openstreetmap
Vector Datasource
Tilezen vector tile service - OpenStreetMap data in several formats
Stars: ✭ 427 (-30.11%)
Mutual labels:  openstreetmap
Blender Osm
One click download and import of OpenStreetMap and terrain for Blender! Global coverage! Source code is in the branch 'release'.
Stars: ✭ 588 (-3.76%)
Mutual labels:  openstreetmap
Barefoot
Java map matching library for integrating the map into software and services with state-of-the-art online and offline map matching that can be used stand-alone and in the cloud.
Stars: ✭ 541 (-11.46%)
Mutual labels:  openstreetmap
Osrm Backend
Open Source Routing Machine - C++ backend
Stars: ✭ 4,716 (+671.85%)
Mutual labels:  openstreetmap

Kosmtik

Join the chat at https://gitter.im/kosmtik/kosmtik Dependency Status Build Status

Very lite but extendable mapping framework to create Mapnik ready maps with OpenStreetMap data (and more).

For now, only Carto based projects are supported (with .mml or .yml config), but in the future we hope to plug in MapCSS too.

Lite

Only the core needs:

  • project loading
  • local configuration management
  • tiles server for live feedback when coding
  • exports to common formats (Mapnik XML, PNG…)
  • hooks everywhere to make easy to extend it with plugins

Screenshot

screenshot

Install or Update

Note: Node.js versions are moving very fast, and kosmtik or its dependencies are hardly totally up to date with latest release. Ideally, you should run the LTS version of Node.js. You can use a Node.js version manager (like NVM) to help.

npm -g install kosmtik

This might need root/Administrator rights. If you cannot install globally you can also install locally with

npm install kosmtik

This will create a node_modules/kosmtik folder. You then have to replace all occurences of kosmtik below with node node_modules/kosmtik/index.js.

Usage

To get command line help, run:

kosmtik -h

To run a Carto project (or .yml, .yaml):

kosmtik serve <path/to/your/project.mml>

Then open your browser at http://127.0.0.1:6789/.

You may also want to install plugins. To see the list of available ones, type:

npm search kosmtik

Configuration file

By default Kosmtik places a configuration file into $HOMEDIR/.config/kosmtik.yml where $HOMEDIR is your home directory. You can change that by setting the environment variable KOSMTIK_CONFIGPATH to the appropriate file.

In the configuration file Kosmtik stores information about installed plugins and you can change certain settings that should be persistent between runs.

Configurable settings are:

  • autoReload (true/false)
  • backendPolling (true/false)
  • cacheVectorTiles (true/false)
  • dataInspectorLayers (object with layer names and true/false)
  • exportFormats (array of strings)
  • showCrosshairs (true/false)

Local config

Because you often need to change the project config to match your local env, for example to adapt the database connection credentials, kosmtik comes with an internal plugin to manage that. You have two options: with a json file named localconfig.json, or with a js module name localconfig.js.

Place your localconfig.js or localconfig.json file in the same directory as your carto project (or .yml, .yaml).

In both cases, the behaviour is the same, you create some rules to target the configuration and changes the values. Those rules are started by the keyword where, and you define which changes to apply using then keyword. You can also filter the targeted objects by using the if clause. See the examples below to get it working right now.

Example of a json file

[
    {
        "where": "center",
        "then": [-122.25, 49.25, 10]
    },
    {
        "where": "Layer",
        "if": {
            "Datasource.type": "postgis"
        },
        "then": {
            "Datasource.dbname": "vancouver",
            "Datasource.password": "",
            "Datasource.user": "ybon",
            "Datasource.host": ""
        }
    },
    {
        "where": "Layer",
        "if": {
            "id": "hillshade"
        },
        "then": {
            "Datasource.file": "/home/ybon/Code/maps/hdm/DEM/data/hillshade.vrt"
        }
    }
]

Example of a js module

exports.LocalConfig = function (localizer, project) {
    localizer.where('center').then([29.9377, -3.4216, 9]);
    localizer.where('Layer').if({'Datasource.type': 'postgis'}).then({
        "Datasource.dbname": "burundi",
        "Datasource.password": "",
        "Datasource.user": "ybon",
        "Datasource.host": ""
    });
    // You can also do it in pure JS
    project.mml.bounds = [1, 2, 3, 4];
};

Custom renderers

By default Kosmtik uses Carto to render the style. Via plugins it is possible to use other renderers or Carto implementations. You can switch the renderer installing the appropriate plugin and by passing the command line option --renderer NAME. NAME refers to the renderer name (e.g. carto for the default renderer or magnacarto for the Magnacarto renderer).

Known plugins

Run npm search kosmtik to get an up to date list.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].