From a377fcdb7f43eaa03802b7359a6fd08ba0e28c17 Mon Sep 17 00:00:00 2001 From: lukasmartinelli Date: Sun, 11 Sep 2016 14:25:03 +0200 Subject: [PATCH] Explain reason for building in README --- README.md | 40 +++++++++++++++++++++++++++++++++++++++- mapolo.png | Bin 0 -> 36311 bytes 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 mapolo.png diff --git a/README.md b/README.md index 5af4515..4c8982c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,47 @@ # Mapolo -A visual style editor for MapboxGL. +Mapolo + +A free and open visual editor for the [Mapbox GL styles](https://www.mapbox.com/mapbox-gl-style-spec/) +targeted at developers and map designers. With Mapolo everyone can design their own custom map! + +## Features + +- Completely free and open source +- Visual interface for designing maps +- Immediate feedback +- Edit layers +- No vendor lock-in, no proprietary base styles +- Easy to deploy as single HTML file + +**Roadmap** + +- [ ] Add new layers +- [ ] Support all layer types +- [ ] Choose sources +- [ ] Filter data from sources +- [ ] Support zoom level specific values +- [ ] Faster map feedback with custom diff algorithm +- [ ] Tests for React components +- [ ] Make it prettier + +## Reason + +Mapbox GL is one of the biggest innovations the GIS world and is the first cross platform framework to display maps on mobile devices, the browser and the desktop. Maps are styled using a JSON style document with properties described in the [Mapbox GL style specification](https://www.mapbox.com/mapbox-gl-style-spec/). The style specification is adopted in more and more clients such as Open Layers 3 and therefore the **missing piece in the puzzle is a style editor that is easy to use, free and open source!** + +In constrast to earlier approaches using [CartoCSS](https://www.mapbox.com/help/getting-started-cartocss/) the format is difficult to edit by hand but much more suitable for generating from an editor. +As of today Mapbox GL styles are usually designed within the cloud based [Mapbox Studio](https://www.mapbox.com/mapbox-studio/) +which is a great example how a style editor should look like. + +The big problem is that Mapbox Studio is not open source and you have to upload your data sources to external servers and +essentially are locked in the Mapbox ecosystem. By reusing existing proprietary base styles you legally tie your style for use with Mapbox services. It is difficult to use other data source like [OSM2VectorTiles](osm2vectortiles.org), [Mapzen](https://mapzen.com/projects/vector-tiles/) or [Kartotherian](https://github.com/kartotherian/kartotherian) or even your own custom vector tile sources. + +This is why I think we should rally behind and build our own style editor for the Mapbox GL style specification! ## Develop +Mapolo is written in ES6 and is using [React](https://github.com/facebook/react), [Immutable.js](https://facebook.github.io/immutable-js/) and [Mapbox GL JS](https://www.mapbox.com/mapbox-gl-js/api/). + Install the deps, start the dev server and open the web browser on `http://localhost:8888/`. ```bash diff --git a/mapolo.png b/mapolo.png new file mode 100644 index 0000000000000000000000000000000000000000..5acd9ffa7b88979d6cf591405f731f5052df3e2b GIT binary patch literal 36311 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�}G$YVC*`Z5yeqk;k_esXz?r)gA{Qv-4Eiasce% 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 literal 0 HcmV?d00001