• Stars
    star
    2,094
  • Rank 22,061 (Top 0.5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source visual editor for the 'MapLibre Style Specification'

Maputnik logo

Maputnik

GitHub CI status License

A free and open visual editor for the MapLibre GL styles targeted at developers and map designers.

Usage

docker run -it --rm -p 8888:8888 maputnik/editor

Donations

Mapbox has built one of the best and most amazing OSS ecosystems. A key component to ensure its longevity and independence is an OSS map designer. If you or your organisation has seen value from Maputnik, please consider donating at https://maputnik.github.io/donate

Documentation

The documentation can be found in the Wiki. You are welcome to collaborate!

Design Map from Scratch

Develop

Maputnik is written in ES6 and is using React and MapLibre GL JS.

We ensure building and developing Maputnik works with the current active LTS Node.js version and above.

Install the deps, start the dev server and open the web browser on http://localhost:8888/.

# install dependencies
npm install
# start dev server
npm run start

If you want Maputnik to be accessible externally use the --host option:

# start externally accessible dev server
npm run start -- --host 0.0.0.0

The build process will watch for changes to the filesystem, rebuild and autoreload the editor. However note this from the webpack-dev-server docs:

webpack uses the file system to get notified of file changes. In some cases this does not work. For example, when using Network File System (NFS). Vagrant also has a lot of problems with this. (snippet source)

To enable polling add export WEBPACK_DEV_SERVER_POLLING=1 to your environment.

npm run build

Lint the JavaScript code.

# run linter
npm run lint
npm run lint-styles

Tests

For testing we use webdriverio and selenium-standalone.

selenium-standalone starts a server that will launch browsers on your local machine. You need to have Java installed on your machine as well as chrome or firefox.

Now open a terminal and run the following using chrome:

npm run test

or firefox:

BROWSER=firefox npm run test

After some time you should see a browser launch which will be automated by the test runner.

  • maputnik-dev-server - An express.js server that allows for quickly loading the style from any mapboxGL map into mapuntnik.

Sponsors

Thanks to the supporters of the Kickstarter campaign. This project would not be possible without these commercial and individual sponsors.

Gold

Wemap Terranodo Terranodo

Silver

Klokan Technologies Geofabrik Dreipol

Individuals

Influential Stakeholder

Alan McConchie, Odi, Mats Norén, Uli geOps, Helge Fahrnberger (Toursprung), Kirusanth Poopalasingam

Stakeholder

Brian Flood, Vasile Coțovanu, Andreas Kalkbrenner, Christian Mäder, Gregor Wassmann, Lee Armstrong, Rafel, Jon Burgess, Lukas Lehmann, Joachim Ungar, Alois Ackermann, Zsolt Ero, Jordan Meek

Supporter

Sina Martinelli, Nicholas Doiron, Neil Cawse, Urs42, Benedikt Groß, Manuel Roth, Janko Mihelić, Moritz Stefaner, Sebastian Ahoi, Juerg Uhlmann, Tom Wider, Nadia Panchaud, Oliver Snowden, Stephan Heuel, Tobin Bradley, Adrian Herzog, Antti Lehto, Pascal Mages, Marc Gehling, Imre Samu, Lauri K., Visahavel Parthasarathy, Christophe Waterlot-Buisine, Max Galka, ubahnverleih, Wouter van Dam, Jakob Lobensteiner, Samuel Kurath, Brian Bancroft

License

Maputnik is licensed under MIT and is Copyright (c) Lukas Martinelli and contributors.

Disclaimer This project is not affiliated with Mapbox or Mapbox Studio. It is an independent style editor for the open source technology in the Mapbox GL ecosystem. As contributor please take extra care of not violating any Mapbox trademarks. Do not get inspired by Mapbox Studio and make your own decisions for a good style editor.

More Repositories

1

maplibre-gl-js

MapLibre GL JS - Interactive vector tile maps in the browser
TypeScript
6,404
star
2

martin

Blazing fast and lightweight PostGIS, MBtiles and PMtiles tile server, tile generation, and mbtiles tooling.
Rust
2,231
star
3

maplibre-rs

Experimental Maps for Web, Mobile and Desktop
Rust
1,343
star
4

maplibre-native

MapLibre Native - Interactive vector tile maps for iOS, Android and other platforms.
C++
1,048
star
5

awesome-maplibre

A collection of awesome things that use or support MapLibre!
378
star
6

flutter-maplibre-gl

Customizable, performant and vendor-free vector and raster maps, flutter wrapper for maplibre-native and maplibre-gl-js (fork of flutter-mapbox-gl/maps)
Dart
210
star
7

maplibre-react-native

A MapLibre react native module for creating custom maps
Java
209
star
8

maplibre-tile-spec

Next generation vector tiles format
Java
171
star
9

font-maker

Web app to convert font files into fontstacks for MapLibre GL
TypeScript
161
star
10

maplibre-gl-leaflet

This is a binding from MapLibre GL JS to the familiar Leaflet API.
JavaScript
123
star
11

maplibre-navigation-android

Maplibre Navigation SDK for Android
Java
91
star
12

demotiles

Demo vector tiles and map style for web, helloworld and CI tests @MapLibre. Hosted directly on GitHub Pages, serverless, no keys.
HTML
74
star
13

maplibre

Documents that span across multiple MapLibre projects
73
star
14

ngx-maplibre-gl

Angular binding of maplibre-gl
TypeScript
73
star
15

maplibre-gl-directions

A plugin to show routing directions on a MapLibre GL JS map
TypeScript
72
star
16

maplibre-style-spec

MapLibre Style Specification & Utilities
TypeScript
66
star
17

mbtileserver-rs

Deprecated mbtiles server in Rust. Use Martin tile server instead.
Rust
61
star
18

maplibre-gl-native-distribution

MapLibre Native for iOS distributed via the Swift Package Manager.
Swift
51
star
19

maplibre-gl-inspect

Maplibre GL Inspect adds an inspect control to maplibre-gl-js to view all features of the vector sources and allows hovering over features to see their properties.
TypeScript
39
star
20

maplibre-native-qt

MapLibre Native Qt Bindings and Qt Location Plugin
C++
38
star
21

maplibre-navigation-ios

MapLibre Navigation SDK for iOS
Swift
36
star
22

maplibre-navigation-android-legacy

Legacy MapLibre Navigation SDK for Android
Java
33
star
23

maplibre-gl-compare

Swipe and sync between two maps
JavaScript
32
star
24

maplibre-gl-js-docs

Deprecated - Docs are in the /docs folder of the maplibre-gl-js repo.
JavaScript
23
star
25

maplibre-plugins-android

MapLibre Native for Android Plugins
Java
22
star
26

maplibre-java

MapLibre Native Android utilities
Java
16
star
27

maplibre.github.io

HTML
13
star
28

maplibre-native-base

MapLibre Native Base C++ Libraries
C++
4
star
29

maplibre-native-android-examples

MapLibre Native Android Examples
3
star
30

workshop

HTML
2
star
31

mvt-cpp

C++ library for decoding MVT files
C++
2
star
32

martin-landing-page

JavaScript
1
star
33

maplibre-gestures-android

The MapLibre Gestures for Android library makes it easy to detect and handle user gestures on an Android device.
Java
1
star
34

homebrew-martin

Homebrew for Martin
Ruby
1
star
35

repo-stats

A repository to get statistics on other maplibre repos
1
star