Fixed minor bugs, added support for vsketch and updated code for compatibility with shapely==2.0.0 and python==3.11
@ -1,8 +0,0 @@
|
||||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/python-3/.devcontainer/base.Dockerfile
|
||||
|
||||
# [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
|
||||
ARG VARIANT="3.9"
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}
|
||||
|
||||
# vsketch as of Aug 25, 2021
|
||||
RUN pip3 --disable-pip-version-check --no-cache-dir install https://github.com/abey79/vsketch/archive/6d4b4ea1de27ba563032ce1aee02457c16d4ea60.zip
|
@ -1,21 +0,0 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/python-3
|
||||
{
|
||||
"name": "Prettymaps",
|
||||
"postStartCommand": "script/bootstrap",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": "..",
|
||||
"args": {
|
||||
"VARIANT": "3.9"
|
||||
}
|
||||
},
|
||||
|
||||
"settings": {
|
||||
"python.pythonPath": "/usr/local/bin/python",
|
||||
},
|
||||
|
||||
"extensions": ["ms-python.python", "ms-python.vscode-pylance"],
|
||||
|
||||
"remoteUser": "vscode"
|
||||
}
|
0
.github/FUNDING.yml
vendored
Normal file → Executable file
0
.github/workflows/publish-package.yml
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
MANIFEST.in
Normal file → Executable file
316
README.md
Normal file → Executable file
@ -1,36 +1,52 @@
|
||||
```python
|
||||
# Install prettymaps using pip:
|
||||
#!pip install prettymaps
|
||||
```
|
||||
|
||||
# prettymaps
|
||||
|
||||
A Python package to draw maps with customizable styles from [OpenStreetMap](https://www.openstreetmap.org/#map=12/11.0733/106.3078) data. Created using the [osmnx](https://github.com/gboeing/osmnx), [matplotlib](https://matplotlib.org/), [shapely](https://shapely.readthedocs.io/en/stable/index.html) and [vsketch](https://github.com/abey79/vsketch) packages.
|
||||
|
||||
> **This work is [licensed](LICENSE) under a GNU Affero General Public License v3.0 (you can make commercial use, distribute and modify this project, but must **disclose** the source code with the license and copyright notice)**
|
||||
|
||||
<a href='https://ko-fi.com/marceloprates_' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|
||||
|
||||
# Installation
|
||||
|
||||
### Install using with [pip](https://pypi.org):
|
||||
|
||||
```
|
||||
pip install prettymaps
|
||||
```
|
||||
|
||||
# [Google Colab Demo](https://colab.research.google.com/github/marceloprates/prettymaps/blob/master/notebooks/examples.ipynb)
|
||||
A minimal Python library to draw customized maps from [OpenStreetMap](https://www.openstreetmap.org/#map=12/11.0733/106.3078) created using the [osmnx](https://github.com/gboeing/osmnx), [matplotlib](https://matplotlib.org/), [shapely](https://shapely.readthedocs.io/en/stable/index.html) and [vsketch](https://github.com/abey79/vsketch) packages.
|
||||
|
||||
![](https://github.com/marceloprates/prettymaps/raw/main/prints/heerhugowaard.png)
|
||||
|
||||
|
||||
# Note about crediting and NFTs:
|
||||
This work is [licensed](LICENSE) under a GNU Affero General Public License v3.0 (you can make commercial use, distribute and modify this project, but must **disclose** the source code with the license and copyright notice)
|
||||
|
||||
## Note about crediting and NFTs:
|
||||
- Please keep the printed message on the figures crediting my repository and OpenStreetMap ([mandatory by their license](https://www.openstreetmap.org/copyright)).
|
||||
- I am personally **against** NFTs for their [environmental impact](https://earth.org/nfts-environmental-impact/), the fact that they're a [giant money-laundering pyramid scheme](https://twitter.com/smdiehl/status/1445795667826208770) and the structural incentives they create for [theft](https://twitter.com/NFTtheft) in the open source and generative art communities.
|
||||
- **I do not authorize in any way this project to be used for selling NFTs**, although I cannot legally enforce it. **Respect the creator**.
|
||||
- The [AeternaCivitas](https://magiceden.io/marketplace/aeterna_civitas) and [geoartnft](https://www.geo-nft.com/) projects have used this work to sell NFTs and refused to credit it. See how they reacted after being exposed: [AeternaCivitas](etc/NFT_theft_AeternaCivitas.jpg), [geoartnft](etc/NFT_theft_geoart.jpg).
|
||||
- **I have closed my other generative art projects on Github and won't be sharing new ones as open source to protect me from the NFT community**.
|
||||
|
||||
# As seen on [Hacker News](https://web.archive.org/web/20210825160918/https://news.ycombinator.com/news):
|
||||
<a href='https://ko-fi.com/marceloprates_' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|
||||
|
||||
## As seen on [Hacker News](https://web.archive.org/web/20210825160918/https://news.ycombinator.com/news):
|
||||
![](https://github.com/marceloprates/prettymaps/raw/main/prints/hackernews-prettymaps.png)
|
||||
|
||||
# [prettymaps subreddit](https://www.reddit.com/r/prettymaps_/)
|
||||
## [prettymaps subreddit](https://www.reddit.com/r/prettymaps_/)
|
||||
## [Google Colaboratory Demo](https://colab.research.google.com/github/marceloprates/prettymaps/blob/master/notebooks/examples.ipynb)
|
||||
|
||||
# Installation
|
||||
|
||||
OBS. I'm trying to solve a dependency issue with [vsketch](https://vsketch.readthedocs.io/en/latest/install.html) before publishing prettymaps v0.1.3, so, for now, please install directly from GitHub.
|
||||
|
||||
### Install locally:
|
||||
Install prettymaps with:
|
||||
|
||||
```
|
||||
pip install git+https://github.com/marceloprates/prettymaps
|
||||
```
|
||||
|
||||
### Install on Google Colaboratory:
|
||||
|
||||
Install prettymaps with:
|
||||
|
||||
```
|
||||
!pip install -e "git+https://github.com/marceloprates/prettymaps#egg=prettymaps"
|
||||
```
|
||||
|
||||
Then **restart the runtime** (Runtime -> Restart Runtime) before importing prettymaps
|
||||
|
||||
# Tutorial
|
||||
|
||||
@ -46,6 +62,9 @@ prettymaps.plot(your_query)
|
||||
|
||||
|
||||
```python
|
||||
%load_ext autoreload
|
||||
%autoreload 2
|
||||
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')
|
||||
@ -53,7 +72,7 @@ plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_6_0.png)
|
||||
![png](README_files/README_7_0.png)
|
||||
|
||||
|
||||
|
||||
@ -63,6 +82,8 @@ See below an example using the "minimal" preset
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
'Stad van de Zon, Heerhugowaard, Netherlands',
|
||||
preset = 'minimal'
|
||||
@ -71,7 +92,7 @@ plot = prettymaps.plot(
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_8_0.png)
|
||||
![png](README_files/README_9_0.png)
|
||||
|
||||
|
||||
|
||||
@ -83,7 +104,30 @@ prettymaps.presets()
|
||||
|
||||
to list all available presets:
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
prettymaps.presets()
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
<style scoped>
|
||||
.dataframe tbody tr th:only-of-type {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.dataframe tbody tr th {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.dataframe thead th {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
<table border="1" class="dataframe">
|
||||
<thead>
|
||||
<tr style="text-align: right;">
|
||||
@ -95,41 +139,51 @@ to list all available presets:
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>0</th>
|
||||
<td>abraca-redencao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<td>barcelona</td>
|
||||
<td>{'layers': {'perimeter': {'circle': False}, 's...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<td>barcelona-plotter</td>
|
||||
<td>{'layers': {'streets': {'width': {'primary': 5...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>2</th>
|
||||
<th>3</th>
|
||||
<td>cb-bf-f</td>
|
||||
<td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<td>default</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>4</th>
|
||||
<th>5</th>
|
||||
<td>heerhugowaard</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5</th>
|
||||
<th>6</th>
|
||||
<td>macao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>6</th>
|
||||
<th>7</th>
|
||||
<td>minimal</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7</th>
|
||||
<th>8</th>
|
||||
<td>plotter</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>9</th>
|
||||
<td>tijuca</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
@ -143,21 +197,16 @@ To examine a specific preset, run:
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
prettymaps.preset('default')
|
||||
```
|
||||
|
||||
|
||||
| | layers | style | circle | radius |
|
||||
|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:---------------|
|
||||
| perimeter | {}<br> | fill: false<br>lw: 0<br>zorder: 0<br> | null<br>...<br> | 500<br>...<br> |
|
||||
| streets | width:<br> cycleway: 3.5<br> footway: 1<br> motorway: 5<br> pedestrian: 2<br> primary: 4.5<br> residential: 3<br> secondary: 4<br> service: 2<br> tertiary: 3.5<br> trunk: 5<br> unclassified: 2<br> | alpha: 1<br>ec: '<span style="background-color:#475657; color:#fff">#475657</span>'<br>fc: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>lw: 0<br>zorder: 4<br> | | |
|
||||
| building | tags:<br> building: true<br> landuse: construction<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>lw: 0.5<br>palette:<br>- '<span style="background-color:#433633; color:#fff">#433633</span>'<br>- '<span style="background-color:#FF5E5B; color:#000">#FF5E5B</span>'<br>zorder: 5<br> | | |
|
||||
| water | tags:<br> natural:<br> - water<br> - bay<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#a8e1e6; color:#000">#a8e1e6</span>'<br>hatch: ooo...<br>hatch_c: '<span style="background-color:#9bc3d4; color:#000">#9bc3d4</span>'<br>lw: 1<br>zorder: 3<br> | | |
|
||||
| forest | tags:<br> landuse: forest<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#64B96A; color:#000">#64B96A</span>'<br>lw: 1<br>zorder: 2<br> | | |
|
||||
| green | tags:<br> landuse:<br> - grass<br> - orchard<br> leisure: park<br> natural:<br> - island<br> - wood<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#8BB174; color:#000">#8BB174</span>'<br>hatch: ooo...<br>hatch_c: '<span style="background-color:#A7C497; color:#000">#A7C497</span>'<br>lw: 1<br>zorder: 1<br> | | |
|
||||
| beach | tags:<br> natural: beach<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#FCE19C; color:#000">#FCE19C</span>'<br>hatch: ooo...<br>hatch_c: '<span style="background-color:#d4d196; color:#000">#d4d196</span>'<br>lw: 1<br>zorder: 3<br> | | |
|
||||
| parking | tags:<br> amenity: parking<br> highway: pedestrian<br> man_made: pier<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#F2F4CB; color:#000">#F2F4CB</span>'<br>lw: 1<br>zorder: 3<br> | | |
|
||||
| background | .nan<br>...<br> | fc: '<span style="background-color:#F2F4CB; color:#000">#F2F4CB</span>'<br>zorder: -1<br> | | |
|
||||
|
||||
|
||||
Preset(params={'layers': {'perimeter': {}, 'streets': {'width': {'motorway': 5, 'trunk': 5, 'primary': 4.5, 'secondary': 4, 'tertiary': 3.5, 'cycleway': 3.5, 'residential': 3, 'service': 2, 'unclassified': 2, 'pedestrian': 2, 'footway': 1}}, 'building': {'tags': {'building': True, 'landuse': 'construction'}}, 'water': {'tags': {'natural': ['water', 'bay']}}, 'forest': {'tags': {'landuse': 'forest'}}, 'green': {'tags': {'landuse': ['grass', 'orchard'], 'natural': ['island', 'wood'], 'leisure': 'park'}}, 'beach': {'tags': {'natural': 'beach'}}, 'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}}, 'style': {'perimeter': {'fill': False, 'lw': 0, 'zorder': 0}, 'background': {'fc': '#F2F4CB', 'zorder': -1}, 'green': {'fc': '#8BB174', 'ec': '#2F3737', 'hatch_c': '#A7C497', 'hatch': 'ooo...', 'lw': 1, 'zorder': 1}, 'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 2}, 'water': {'fc': '#a8e1e6', 'ec': '#2F3737', 'hatch_c': '#9bc3d4', 'hatch': 'ooo...', 'lw': 1, 'zorder': 3}, 'beach': {'fc': '#FCE19C', 'ec': '#2F3737', 'hatch_c': '#d4d196', 'hatch': 'ooo...', 'lw': 1, 'zorder': 3}, 'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3}, 'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 4}, 'building': {'palette': ['#433633', '#FF5E5B'], 'ec': '#2F3737', 'lw': 0.5, 'zorder': 5}}, 'circle': None, 'radius': 500})
|
||||
|
||||
|
||||
|
||||
|
||||
@ -215,6 +264,8 @@ Here's an example of running prettymaps.plot() with customized parameters:
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
'Praça Ferreira do Amaral, Macau',
|
||||
circle = True,
|
||||
@ -313,7 +364,7 @@ plot = prettymaps.plot(
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_14_0.png)
|
||||
![png](README_files/README_15_0.png)
|
||||
|
||||
|
||||
|
||||
@ -325,22 +376,47 @@ radius = False
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
'Bom Fim, Porto Alegre, Brasil', radius = False,
|
||||
)
|
||||
```
|
||||
|
||||
![png](README_files/README_16_0.png)
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_17_0.png)
|
||||
|
||||
|
||||
|
||||
You can access layers's GeoDataFrames directly like this:
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
# Run prettymaps in show = False mode (we're only interested in obtaining the GeoDataFrames)
|
||||
plot = prettymaps.plot('Centro Histórico, Porto Alegre', show = False)
|
||||
plot.geodataframes['building']
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
<style scoped>
|
||||
.dataframe tbody tr th:only-of-type {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.dataframe tbody tr th {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.dataframe thead th {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
<table border="1" class="dataframe">
|
||||
<thead>
|
||||
<tr style="text-align: right;">
|
||||
@ -403,7 +479,7 @@ plot.geodataframes['building']
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>POINT (-51.23212 -30.03670)</td>
|
||||
<td>POINT (-51.23212 -30.0367)</td>
|
||||
<td>90010-460</td>
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
@ -452,7 +528,7 @@ plot.geodataframes['building']
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>http://www.ruadapraiashopping.com.br</td>
|
||||
<td>POLYGON ((-51.23167 -30.03066, -51.23160 -30.0...</td>
|
||||
<td>POLYGON ((-51.23167 -30.03066, -51.2316 -30.03...</td>
|
||||
<td>90020-015</td>
|
||||
<td>Rua da Praia Shopping</td>
|
||||
<td>NaN</td>
|
||||
@ -476,7 +552,7 @@ plot.geodataframes['building']
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>http://www.memorial.rs.gov.br</td>
|
||||
<td>POLYGON ((-51.23117 -30.02891, -51.23120 -30.0...</td>
|
||||
<td>POLYGON ((-51.23117 -30.02891, -51.2312 -30.02...</td>
|
||||
<td>90010-191</td>
|
||||
<td>Memorial do Rio Grande do Sul</td>
|
||||
<td>NaN</td>
|
||||
@ -574,7 +650,7 @@ plot.geodataframes['building']
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>NaN</td>
|
||||
<td>POLYGON ((-51.23203 -30.03340, -51.23203 -30.0...</td>
|
||||
<td>POLYGON ((-51.23203 -30.0334, -51.23203 -30.03...</td>
|
||||
<td>NaN</td>
|
||||
<td>Atheneu Espírita Cruzeiro do Sul</td>
|
||||
<td>NaN</td>
|
||||
@ -679,11 +755,15 @@ plot.geodataframes['building'][
|
||||
].geometry[0]
|
||||
```
|
||||
|
||||
/home/marcelo/anaconda3/envs/prettymaps/lib/python3.11/site-packages/geopandas/geoseries.py:720: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
|
||||
val = getattr(super(), mtd)(*args, **kwargs)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
![svg](README_files/README_20_0.svg)
|
||||
![svg](README_files/README_21_1.svg)
|
||||
|
||||
|
||||
|
||||
@ -692,10 +772,10 @@ Plot mosaic of building footprints
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
import numpy as np
|
||||
import osmnx as ox
|
||||
from matplotlib import pyplot as plt
|
||||
from matplotlib.font_manager import FontProperties
|
||||
|
||||
# Run prettymaps in show = False mode (we're only interested in obtaining the GeoDataFrames)
|
||||
plot = prettymaps.plot('Porto Alegre', show = False)
|
||||
@ -714,8 +794,7 @@ fig.patch.set_facecolor('#5cc0eb')
|
||||
fig.suptitle(
|
||||
'Buildings of Porto Alegre',
|
||||
size = 25,
|
||||
color = '#fff',
|
||||
fontproperties = FontProperties(fname = '../assets/PermanentMarker-Regular.ttf')
|
||||
color = '#fff'
|
||||
)
|
||||
# Draw each building footprint on a separate axis
|
||||
for ax,building in zip(np.concatenate(axes),buildings):
|
||||
@ -725,7 +804,7 @@ for ax,building in zip(np.concatenate(axes),buildings):
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_22_0.png)
|
||||
![png](README_files/README_23_0.png)
|
||||
|
||||
|
||||
|
||||
@ -733,7 +812,7 @@ Access plot.ax or plot.fig to add new elements to the matplotlib plot:
|
||||
|
||||
|
||||
```python
|
||||
from matplotlib.font_manager import FontProperties
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
(41.39491,2.17557),
|
||||
@ -743,20 +822,16 @@ plot = prettymaps.plot(
|
||||
# Change background color
|
||||
plot.fig.patch.set_facecolor('#F2F4CB')
|
||||
# Add title
|
||||
plot.ax.set_title(
|
||||
_ = plot.ax.set_title(
|
||||
'Barcelona',
|
||||
fontproperties = FontProperties(
|
||||
fname = '../assets/PermanentMarker-Regular.ttf',
|
||||
size = 50
|
||||
)
|
||||
font = 'serif',
|
||||
size = 50
|
||||
)
|
||||
|
||||
plt.show()
|
||||
```
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_24_0.png)
|
||||
![png](README_files/README_25_0.png)
|
||||
|
||||
|
||||
|
||||
@ -764,6 +839,8 @@ Use **plotter** mode to export a pen plotter-compatible SVG (thanks to abey79's
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
(41.39491,2.17557),
|
||||
mode = 'plotter',
|
||||
@ -776,7 +853,7 @@ plot = prettymaps.plot(
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_26_0.png)
|
||||
![png](README_files/README_27_0.png)
|
||||
|
||||
|
||||
|
||||
@ -784,6 +861,8 @@ Some other examples
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
# City name
|
||||
'Barra da Tijuca',
|
||||
@ -795,12 +874,14 @@ plot = prettymaps.plot(
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_28_0.png)
|
||||
![png](README_files/README_29_0.png)
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
plot = prettymaps.plot(
|
||||
'Stad van de Zon, Heerhugowaard, Netherlands',
|
||||
preset = 'heerhugowaard',
|
||||
@ -809,7 +890,7 @@ plot = prettymaps.plot(
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_29_0.png)
|
||||
![png](README_files/README_30_0.png)
|
||||
|
||||
|
||||
|
||||
@ -817,6 +898,8 @@ Use prettymaps.create_preset() to create a preset:
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
prettymaps.create_preset(
|
||||
"my-preset",
|
||||
layers = {
|
||||
@ -869,11 +952,10 @@ prettymaps.preset('my-preset')
|
||||
```
|
||||
|
||||
|
||||
| | layers | style | circle | radius | dilate |
|
||||
|:----------|:--------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------|:----------------|:----------------|
|
||||
| building | tags:<br> building: true<br> leisure:<br> - track<br> - pitch<br> | ec: '<span style="background-color:#2F3737; color:<span style="background-color:#fff; color:#000">#fff</span>">#2F3737</span>'<br>lw: 1<br>palette:<br>- '<span style="background-color:#fff; color:#000">#fff</span>'<br>zorder: 4<br> | null<br>...<br> | null<br>...<br> | null<br>...<br> |
|
||||
| streets | width:<br> footway: 3<br> path: 3<br> pedestrian: 3<br> primary: 6<br> residential: 3.5<br> secondary: 5<br> tertiary: 4<br> trunk: 6<br> | ec: '<span style="background-color:#2F3737; color:#fff">#2F3737</span>'<br>fc: '<span style="background-color:#F1E6D0; color:#000">#F1E6D0</span>'<br>lw: 1.5<br>zorder: 3<br> | | | |
|
||||
| perimeter | .nan<br>...<br> | fill: false<br>lw: 0<br>zorder: 0<br> | | | |
|
||||
|
||||
|
||||
Preset(params={'layers': {'building': {'tags': {'building': True, 'leisure': ['track', 'pitch']}}, 'streets': {'width': {'trunk': 6, 'primary': 6, 'secondary': 5, 'tertiary': 4, 'residential': 3.5, 'pedestrian': 3, 'footway': 3, 'path': 3}}}, 'style': {'perimeter': {'fill': False, 'lw': 0, 'zorder': 0}, 'streets': {'fc': '#F1E6D0', 'ec': '#2F3737', 'lw': 1.5, 'zorder': 3}, 'building': {'palette': ['#fff'], 'ec': '#2F3737', 'lw': 1, 'zorder': 4}}, 'circle': None, 'radius': None, 'dilate': None})
|
||||
|
||||
|
||||
|
||||
Use prettymaps.delete_preset() to delete presets:
|
||||
@ -895,6 +977,19 @@ display(prettymaps.presets())
|
||||
|
||||
|
||||
<div>
|
||||
<style scoped>
|
||||
.dataframe tbody tr th:only-of-type {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.dataframe tbody tr th {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.dataframe thead th {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
<table border="1" class="dataframe">
|
||||
<thead>
|
||||
<tr style="text-align: right;">
|
||||
@ -906,46 +1001,56 @@ display(prettymaps.presets())
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>0</th>
|
||||
<td>abraca-redencao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<td>barcelona</td>
|
||||
<td>{'layers': {'perimeter': {'circle': False}, 's...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<td>barcelona-plotter</td>
|
||||
<td>{'layers': {'streets': {'width': {'primary': 5...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>2</th>
|
||||
<th>3</th>
|
||||
<td>cb-bf-f</td>
|
||||
<td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<td>default</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>4</th>
|
||||
<th>5</th>
|
||||
<td>heerhugowaard</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5</th>
|
||||
<th>6</th>
|
||||
<td>macao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>6</th>
|
||||
<th>7</th>
|
||||
<td>minimal</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7</th>
|
||||
<th>8</th>
|
||||
<td>my-preset</td>
|
||||
<td>{'layers': {'building': {'tags': {'building': ...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>8</th>
|
||||
<th>9</th>
|
||||
<td>plotter</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>10</th>
|
||||
<td>tijuca</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
@ -959,6 +1064,19 @@ display(prettymaps.presets())
|
||||
|
||||
|
||||
<div>
|
||||
<style scoped>
|
||||
.dataframe tbody tr th:only-of-type {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.dataframe tbody tr th {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.dataframe thead th {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
<table border="1" class="dataframe">
|
||||
<thead>
|
||||
<tr style="text-align: right;">
|
||||
@ -970,41 +1088,51 @@ display(prettymaps.presets())
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>0</th>
|
||||
<td>abraca-redencao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<td>barcelona</td>
|
||||
<td>{'layers': {'perimeter': {'circle': False}, 's...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<td>barcelona-plotter</td>
|
||||
<td>{'layers': {'streets': {'width': {'primary': 5...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>2</th>
|
||||
<th>3</th>
|
||||
<td>cb-bf-f</td>
|
||||
<td>{'layers': {'streets': {'width': {'trunk': 6, ...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<td>default</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>4</th>
|
||||
<th>5</th>
|
||||
<td>heerhugowaard</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5</th>
|
||||
<th>6</th>
|
||||
<td>macao</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'cust...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>6</th>
|
||||
<th>7</th>
|
||||
<td>minimal</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7</th>
|
||||
<th>8</th>
|
||||
<td>plotter</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>9</th>
|
||||
<td>tijuca</td>
|
||||
<td>{'layers': {'perimeter': {}, 'streets': {'widt...</td>
|
||||
</tr>
|
||||
@ -1017,8 +1145,10 @@ Use **prettymaps.multiplot** and **prettymaps.Subplot** to draw multiple regions
|
||||
|
||||
|
||||
```python
|
||||
import prettymaps
|
||||
|
||||
# Draw several regions on the same canvas
|
||||
prettymaps.multiplot(
|
||||
plot = prettymaps.multiplot(
|
||||
prettymaps.Subplot(
|
||||
'Cidade Baixa, Porto Alegre',
|
||||
style={'building': {'palette': ['#49392C', '#E1F2FE', '#98D2EB']}}
|
||||
@ -1036,11 +1166,27 @@ prettymaps.multiplot(
|
||||
# Figure size
|
||||
figsize=(12, 12)
|
||||
)
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
![png](README_files/README_35_0.png)
|
||||
![png](README_files/README_36_0.png)
|
||||
|
||||
|
||||
|
||||
|
||||
<Figure size 3600x3600 with 0 Axes>
|
||||
|
||||
|
||||
|
||||
<Figure size 3600x3600 with 0 Axes>
|
||||
|
||||
|
||||
|
||||
<Figure size 3600x3600 with 0 Axes>
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
```
|
||||
|
0
README_files/README_14_0.png
Normal file → Executable file
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
BIN
README_files/README_15_0.png
Normal file
After Width: | Height: | Size: 5.1 MiB |
0
README_files/README_16_0.png
Normal file → Executable file
Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 416 KiB |
BIN
README_files/README_17_0.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
0
README_files/README_20_0.svg
Normal file → Executable file
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
1
README_files/README_21_1.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100.0" height="100.0" viewBox="-51.23032682800001 -30.034281028 0.0006073560000103839 0.0008053559999900983" preserveAspectRatio="xMinYMin meet"><g transform="matrix(1,0,0,-1,0,-60.067756700000004)"><path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="1.6107119999801965e-05" opacity="0.6" d="M -51.2298412,-30.03353870000001 L -51.2298154,-30.033540599999984 L -51.2298126,-30.0335408 L -51.2298129,-30.033544300000003 L -51.2297808,-30.033546700000002 L -51.2297805,-30.033544400000007 L -51.2297758,-30.0335447 L -51.2297562,-30.0335462 L -51.2297493,-30.033546699999995 L -51.2297572,-30.033627 L -51.22975770000001,-30.033632 L -51.2298302,-30.033626299999995 L -51.2298538,-30.033865 L -51.2298442,-30.033865799999994 L -51.2298477,-30.033909500000004 L -51.2298412,-30.03390990000001 L -51.2298357,-30.03390249999999 L -51.2298133,-30.033912799999996 L -51.2298168,-30.0339188 L -51.2297959,-30.0339406 L -51.2297906,-30.033939 L -51.2297826,-30.03395859999999 L -51.2297866,-30.033959199999998 L -51.2297957,-30.034019000000004 L -51.2297902,-30.034021399999997 L -51.229800700000006,-30.0340417 L -51.2298073,-30.0340393 L -51.2298344,-30.034053999999994 L -51.2298319,-30.034065200000008 L -51.2298509,-30.034070399999994 L -51.2298558,-30.034059600000003 L -51.2298704,-30.0340585 L -51.2298741,-30.034097 L -51.2298921,-30.034095599999993 L -51.2298985,-30.03416019999999 L -51.2298609,-30.034163 L -51.2298683,-30.034238599999984 L -51.2299531,-30.0342322 L -51.2299549,-30.0342512 L -51.2301846,-30.034234 L -51.2301825,-30.03421339999999 L -51.2302643,-30.03420729999999 L -51.2302569,-30.034132200000002 L -51.2302241,-30.034134599999994 L -51.2302178,-30.0340702 L -51.2302266,-30.034069400000007 L -51.2302229,-30.034030399999995 L -51.2302285,-30.03403000000001 L -51.230236500000004,-30.0340294 L -51.2302396,-30.034038299999995 L -51.230256600000004,-30.03403409999999 L -51.2302532,-30.0340242 L -51.230280900000004,-30.034001599999996 L -51.2302902,-30.0340033 L -51.23029700000001,-30.03398119999999 L -51.2302871,-30.0339784 L -51.2302841,-30.033920999999992 L -51.2302898,-30.033919600000008 L -51.2302806,-30.0338995 L -51.2302726,-30.033902399999995 L -51.2302486,-30.033885599999994 L -51.2302511,-30.033877399999998 L -51.2302264,-30.033868700000003 L -51.2302198,-30.033880699999987 L -51.2302148,-30.033878999999995 L -51.230213000000006,-30.03383810000001 L -51.2302054,-30.033838700000004 L -51.2301818,-30.0336 L -51.2302499,-30.033594899999997 L -51.2302471,-30.033566499999996 L -51.2302452,-30.033566699999998 L -51.2302423,-30.0335373 L -51.2302448,-30.033537100000004 L -51.2302419,-30.0335085 L -51.2302051,-30.033511199999992 L -51.2302053,-30.03351359999999 L -51.2301756,-30.0335159 L -51.2301752,-30.033512399999992 L -51.23014450000001,-30.0335147 L -51.2301449,-30.033518200000003 L -51.2300854,-30.033522699999995 L -51.2300843,-30.03351139999999 L -51.2300823,-30.0335115 L -51.2300635,-30.033512799999997 L -51.2300628,-30.033505500000008 L -51.2300334,-30.0335078 L -51.2300336,-30.03350989999999 L -51.2300339,-30.033513 L -51.22995280000001,-30.033519100000003 L -51.229952600000004,-30.033516999999996 L -51.2299524,-30.0335151 L -51.2299225,-30.03351729999999 L -51.2299228,-30.033520499999998 L -51.2298995,-30.03352229999999 L -51.2299009,-30.033536999999992 L -51.2298443,-30.033541300000003 L -51.229844,-30.0335385 L -51.2298412,-30.03353870000001 z" /></g></svg>
|
After Width: | Height: | Size: 3.4 KiB |
0
README_files/README_22_0.png
Normal file → Executable file
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
BIN
README_files/README_23_0.png
Normal file
After Width: | Height: | Size: 65 KiB |
0
README_files/README_24_0.png
Normal file → Executable file
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
BIN
README_files/README_25_0.png
Normal file
After Width: | Height: | Size: 5.4 MiB |
0
README_files/README_26_0.png
Normal file → Executable file
Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB |
BIN
README_files/README_27_0.png
Normal file
After Width: | Height: | Size: 164 KiB |
0
README_files/README_28_0.png
Normal file → Executable file
Before Width: | Height: | Size: 652 KiB After Width: | Height: | Size: 652 KiB |
BIN
README_files/README_29_0.png
Normal file → Executable file
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 2.1 MiB |
BIN
README_files/README_30_0.png
Normal file
After Width: | Height: | Size: 5.2 MiB |
0
README_files/README_35_0.png
Normal file → Executable file
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
BIN
README_files/README_36_0.png
Normal file
After Width: | Height: | Size: 800 KiB |
0
README_files/README_6_0.png
Normal file → Executable file
Before Width: | Height: | Size: 903 KiB After Width: | Height: | Size: 903 KiB |
BIN
README_files/README_7_0.png
Normal file
After Width: | Height: | Size: 3.0 MiB |
0
README_files/README_8_0.png
Normal file → Executable file
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 423 KiB |
BIN
README_files/README_9_0.png
Normal file
After Width: | Height: | Size: 1.5 MiB |
0
docs/Makefile
Normal file → Executable file
0
docs/build/doctrees/environment.pickle
vendored
Normal file → Executable file
0
docs/build/doctrees/index.doctree
vendored
Normal file → Executable file
0
docs/build/html/.buildinfo
vendored
Normal file → Executable file
0
docs/build/html/.doctrees/environment.pickle
vendored
Normal file → Executable file
0
docs/build/html/.doctrees/index.doctree
vendored
Normal file → Executable file
0
docs/build/html/.doctrees/prettymaps.doctree
vendored
Normal file → Executable file
0
docs/build/html/_sources/index.rst.txt
vendored
Normal file → Executable file
0
docs/build/html/_sources/prettymaps.rst.txt
vendored
Normal file → Executable file
0
docs/build/html/_static/alabaster.css
vendored
Normal file → Executable file
0
docs/build/html/_static/basic.css
vendored
Normal file → Executable file
0
docs/build/html/_static/classic.css
vendored
Normal file → Executable file
0
docs/build/html/_static/css/badge_only.css
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/fontawesome-webfont.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/fontawesome-webfont.svg
vendored
Normal file → Executable file
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |
0
docs/build/html/_static/css/fonts/fontawesome-webfont.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/fontawesome-webfont.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/fontawesome-webfont.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-bold-italic.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-bold-italic.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-bold.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-bold.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-normal-italic.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-normal-italic.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-normal.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/css/fonts/lato-normal.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/css/theme.css
vendored
Normal file → Executable file
0
docs/build/html/_static/custom.css
vendored
Normal file → Executable file
0
docs/build/html/_static/default.css
vendored
Normal file → Executable file
0
docs/build/html/_static/doctools.js
vendored
Normal file → Executable file
0
docs/build/html/_static/documentation_options.js
vendored
Normal file → Executable file
0
docs/build/html/_static/file.png
vendored
Normal file → Executable file
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 286 B |
0
docs/build/html/_static/fonts/Inconsolata-Bold.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Inconsolata-Regular.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Inconsolata.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato-Bold.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato-Regular.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bold.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bold.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bold.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bold.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bolditalic.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bolditalic.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-italic.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-italic.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-italic.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-italic.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-regular.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-regular.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-regular.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/Lato/lato-regular.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab-Bold.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab-Regular.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/fontawesome-webfont.eot
vendored
Normal file → Executable file
0
docs/build/html/_static/fonts/fontawesome-webfont.svg
vendored
Normal file → Executable file
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 434 KiB |