mirror of
https://github.com/rastapasta/mapscii.git
synced 2025-06-20 09:47:41 +02:00
change readme
This commit is contained in:
parent
4fe9a60a0c
commit
5563cdce69
118
README.md
118
README.md
@ -1,3 +1,5 @@
|
|||||||
|
COUCOU Ori à modifier le fichier
|
||||||
|
|
||||||
# MapSCII - The Whole World In Your Console. [](https://travis-ci.com/rastapasta/mapscii)
|
# MapSCII - The Whole World In Your Console. [](https://travis-ci.com/rastapasta/mapscii)
|
||||||
|
|
||||||
A node.js based [Vector Tile](http://wiki.openstreetmap.org/wiki/Vector_tiles) to [Braille](http://www.fileformat.info/info/unicode/block/braille_patterns/utf8test.htm) and [ASCII](https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange) renderer for [xterm](https://en.wikipedia.org/wiki/Xterm)-compatible terminals.
|
A node.js based [Vector Tile](http://wiki.openstreetmap.org/wiki/Vector_tiles) to [Braille](http://www.fileformat.info/info/unicode/block/braille_patterns/utf8test.htm) and [ASCII](https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange) renderer for [xterm](https://en.wikipedia.org/wiki/Xterm)-compatible terminals.
|
||||||
@ -14,15 +16,15 @@ If you're on Windows, use the open source telnet client [PuTTY](https://www.chia
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Use your mouse to drag and zoom in and out!
|
- Use your mouse to drag and zoom in and out!
|
||||||
* Discover Point-of-Interests around any given location
|
- Discover Point-of-Interests around any given location
|
||||||
* Highly customizable layer styling with [Mapbox Styles](https://www.mapbox.com/mapbox-gl-style-spec/) support
|
- Highly customizable layer styling with [Mapbox Styles](https://www.mapbox.com/mapbox-gl-style-spec/) support
|
||||||
* Connect to any public or private vector tile server
|
- Connect to any public or private vector tile server
|
||||||
* Or just use the supplied and optimized [OSM2VectorTiles](https://github.com/osm2vectortiles) based one
|
- Or just use the supplied and optimized [OSM2VectorTiles](https://github.com/osm2vectortiles) based one
|
||||||
* Work offline and discover local [VectorTile](https://github.com/mapbox/vector-tile-spec)/[MBTiles](https://github.com/mapbox/mbtiles-spec)
|
- Work offline and discover local [VectorTile](https://github.com/mapbox/vector-tile-spec)/[MBTiles](https://github.com/mapbox/mbtiles-spec)
|
||||||
* Compatible with most Linux and OSX terminals
|
- Compatible with most Linux and OSX terminals
|
||||||
* Highly optimized algorithms for a smooth experience
|
- Highly optimized algorithms for a smooth experience
|
||||||
* 100% pure JavaScript! :sunglasses:
|
- 100% pure JavaScript! :sunglasses:
|
||||||
|
|
||||||
## How to run it locally
|
## How to run it locally
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ If you haven't already got Node.js >= version 10, then [go get it](http://nodejs
|
|||||||
npm install -g mapscii
|
npm install -g mapscii
|
||||||
```
|
```
|
||||||
|
|
||||||
If you're on OSX, or get an error about file permissions, you may need to do ```sudo npm install -g mapscii```
|
If you're on OSX, or get an error about file permissions, you may need to do `sudo npm install -g mapscii`
|
||||||
|
|
||||||
### With snap
|
### With snap
|
||||||
|
|
||||||
@ -62,69 +64,80 @@ mapscii
|
|||||||
|
|
||||||
## Keyboard shortcuts
|
## Keyboard shortcuts
|
||||||
|
|
||||||
* Arrows **up**, **down**, **left**, **right** to scroll around
|
- Arrows **up**, **down**, **left**, **right** to scroll around
|
||||||
* Press **a** or **z** to zoom in and out
|
- Press **a** or **z** to zoom in and out
|
||||||
* Press **c** to switch to block character mode
|
- Press **c** to switch to block character mode
|
||||||
* Press **q** to quit
|
- Press **q** to quit
|
||||||
|
|
||||||
## Mouse control
|
## Mouse control
|
||||||
|
|
||||||
If your terminal supports mouse events you can drag the map and use your scroll wheel to zoom in and out.
|
If your terminal supports mouse events you can drag the map and use your scroll wheel to zoom in and out.
|
||||||
|
|
||||||
## Behind the scenes
|
## Behind the scenes
|
||||||
|
|
||||||
### Libraries
|
### Libraries
|
||||||
|
|
||||||
#### Mastering the console
|
#### Mastering the console
|
||||||
* [`x256`](https://github.com/substack/node-x256) for converting RGB values to closest xterm-256 [color code](https://en.wikipedia.org/wiki/File:Xterm_256color_chart.svg)
|
|
||||||
* [`term-mouse`](https://github.com/CoderPuppy/term-mouse) for mouse handling
|
- [`x256`](https://github.com/substack/node-x256) for converting RGB values to closest xterm-256 [color code](https://en.wikipedia.org/wiki/File:Xterm_256color_chart.svg)
|
||||||
* [`keypress`](https://github.com/TooTallNate/keypress) for input handling
|
- [`term-mouse`](https://github.com/CoderPuppy/term-mouse) for mouse handling
|
||||||
* [`string-width`](https://github.com/sindresorhus/string-width) to determine visual string lengths
|
- [`keypress`](https://github.com/TooTallNate/keypress) for input handling
|
||||||
|
- [`string-width`](https://github.com/sindresorhus/string-width) to determine visual string lengths
|
||||||
|
|
||||||
#### Discovering the map data
|
#### Discovering the map data
|
||||||
* [`vector-tile`](https://github.com/mapbox/vector-tile-js) for [VectorTile](https://github.com/mapbox/vector-tile-spec/tree/master/2.1) parsing
|
|
||||||
* [`pbf`](https://github.com/mapbox/pbf) for [Protobuf](https://developers.google.com/protocol-buffers/) decoding
|
- [`vector-tile`](https://github.com/mapbox/vector-tile-js) for [VectorTile](https://github.com/mapbox/vector-tile-spec/tree/master/2.1) parsing
|
||||||
* [`mbtiles`](https://github.com/mapbox/node-mbtiles) for [MBTiles](https://github.com/mapbox/mbtiles-spec/blob/master/1.2/spec.md) parsing
|
- [`pbf`](https://github.com/mapbox/pbf) for [Protobuf](https://developers.google.com/protocol-buffers/) decoding
|
||||||
|
- [`mbtiles`](https://github.com/mapbox/node-mbtiles) for [MBTiles](https://github.com/mapbox/mbtiles-spec/blob/master/1.2/spec.md) parsing
|
||||||
|
|
||||||
#### Juggling the vectors and numbers
|
#### Juggling the vectors and numbers
|
||||||
* [`earcut`](https://github.com/mapbox/earcut) for polygon triangulation
|
|
||||||
* [`rbush`](https://github.com/mourner/rbush) for 2D spatial indexing of geo and label data
|
- [`earcut`](https://github.com/mapbox/earcut) for polygon triangulation
|
||||||
* [`bresenham`](https://github.com/madbence/node-bresenham) for line point calculations
|
- [`rbush`](https://github.com/mourner/rbush) for 2D spatial indexing of geo and label data
|
||||||
* [`simplify-js`](https://github.com/mourner/simplify-js) for polyline simplifications
|
- [`bresenham`](https://github.com/madbence/node-bresenham) for line point calculations
|
||||||
|
- [`simplify-js`](https://github.com/mourner/simplify-js) for polyline simplifications
|
||||||
|
|
||||||
#### Handling the flow
|
#### Handling the flow
|
||||||
* [`node-fetch`](https://github.com/bitinn/node-fetch) for HTTP requests
|
|
||||||
* [`env-paths`](https://github.com/sindresorhus/env-paths) to determine where to persist downloaded tiles
|
- [`node-fetch`](https://github.com/bitinn/node-fetch) for HTTP requests
|
||||||
|
- [`env-paths`](https://github.com/sindresorhus/env-paths) to determine where to persist downloaded tiles
|
||||||
|
|
||||||
### TODOs
|
### TODOs
|
||||||
* MapSCII
|
|
||||||
* [ ] GeoJSON support via [geojson-vt](https://github.com/mapbox/geojson-vt)
|
|
||||||
* [ ] CLI support
|
|
||||||
* [-] startup parameters
|
|
||||||
* [X] TileSource
|
|
||||||
* [X] Style
|
|
||||||
* [X] center position
|
|
||||||
* [X] zoom
|
|
||||||
* [ ] demo mode?
|
|
||||||
|
|
||||||
* [ ] mouse control
|
- MapSCII
|
||||||
* [ ] hover POIs/labels
|
|
||||||
* [ ] hover maybe even polygons/-lines?
|
|
||||||
|
|
||||||
* Styler
|
- [ ] GeoJSON support via [geojson-vt](https://github.com/mapbox/geojson-vt)
|
||||||
* [ ] respect zoom based style ranges
|
- [ ] CLI support
|
||||||
|
|
||||||
* Renderer
|
- [-] startup parameters
|
||||||
* [ ] download and process tiles in a different thread ([#3](https://github.com/rastapasta/mapscii/issues/3))
|
- [x] TileSource
|
||||||
* [ ] optimize renderer for large areas ([#6](https://github.com/rastapasta/mapscii/issues/6))
|
- [x] Style
|
||||||
* [ ] label drawing
|
- [x] center position
|
||||||
* [ ] multi line label?
|
- [x] zoom
|
||||||
|
- [ ] demo mode?
|
||||||
|
|
||||||
* TileSource
|
- [ ] mouse control
|
||||||
* [ ] implement single vector-tile handling
|
- [ ] hover POIs/labels
|
||||||
|
- [ ] hover maybe even polygons/-lines?
|
||||||
|
|
||||||
|
- Styler
|
||||||
|
|
||||||
|
- [ ] respect zoom based style ranges
|
||||||
|
|
||||||
|
- Renderer
|
||||||
|
|
||||||
|
- [ ] download and process tiles in a different thread ([#3](https://github.com/rastapasta/mapscii/issues/3))
|
||||||
|
- [ ] optimize renderer for large areas ([#6](https://github.com/rastapasta/mapscii/issues/6))
|
||||||
|
- [ ] label drawing
|
||||||
|
- [ ] multi line label?
|
||||||
|
|
||||||
|
- TileSource
|
||||||
|
- [ ] implement single vector-tile handling
|
||||||
|
|
||||||
## Special thanks
|
## Special thanks
|
||||||
|
|
||||||
* [lukasmartinelli](https://github.com/lukasmartinelli) & [manuelroth](https://github.com/manuelroth) for all their work on [OSM2VectorTiles](https://github.com/osm2vectortiles) (global vector tiles from [OSM Planet](https://wiki.openstreetmap.org/wiki/Planet.osm))
|
- [lukasmartinelli](https://github.com/lukasmartinelli) & [manuelroth](https://github.com/manuelroth) for all their work on [OSM2VectorTiles](https://github.com/osm2vectortiles) (global vector tiles from [OSM Planet](https://wiki.openstreetmap.org/wiki/Planet.osm))
|
||||||
* [mourner](https://github.com/mourner) for all his work on mindblowing GIS algorithms (like the used [earcut](https://github.com/mapbox/earcut), [rbush](https://github.com/mourner/rbush), [simplify-js](https://github.com/mourner/simplify-js), ..)
|
- [mourner](https://github.com/mourner) for all his work on mindblowing GIS algorithms (like the used [earcut](https://github.com/mapbox/earcut), [rbush](https://github.com/mourner/rbush), [simplify-js](https://github.com/mourner/simplify-js), ..)
|
||||||
|
|
||||||
## Licenses
|
## Licenses
|
||||||
|
|
||||||
@ -139,5 +152,6 @@ You are free to copy, distribute, transmit and adapt our data, as long as you cr
|
|||||||
The cartography in our map tiles, and our documentation, are licenced under the [Creative Commons Attribution-ShareAlike 2.0](http://creativecommons.org/licenses/by-sa/2.0/) licence (CC BY-SA).
|
The cartography in our map tiles, and our documentation, are licenced under the [Creative Commons Attribution-ShareAlike 2.0](http://creativecommons.org/licenses/by-sa/2.0/) licence (CC BY-SA).
|
||||||
|
|
||||||
### MapSCII
|
### MapSCII
|
||||||
* [License](./LICENSE)
|
|
||||||
* [Authors](./AUTHORS)
|
- [License](./LICENSE)
|
||||||
|
- [Authors](./AUTHORS)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user