Skip to content

Commit 74ecb9d

Browse files
committed
Add demo app
0 parents  commit 74ecb9d

File tree

7 files changed

+223
-0
lines changed

7 files changed

+223
-0
lines changed

.gitignore

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
.vscode/
9+
10+
# Distribution / packaging
11+
.Python
12+
build/
13+
develop-eggs/
14+
dist/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
sdist/
22+
var/
23+
wheels/
24+
pip-wheel-metadata/
25+
share/python-wheels/
26+
*.egg-info/
27+
.installed.cfg
28+
*.egg
29+
MANIFEST
30+
31+
# PyInstaller
32+
# Usually these files are written by a python script from a template
33+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
34+
*.manifest
35+
*.spec
36+
37+
# Installer logs
38+
pip-log.txt
39+
pip-delete-this-directory.txt
40+
41+
# Unit test / coverage reports
42+
htmlcov/
43+
.tox/
44+
.nox/
45+
.coverage
46+
.coverage.*
47+
.cache
48+
nosetests.xml
49+
coverage.xml
50+
*.cover
51+
*.py,cover
52+
.hypothesis/
53+
.pytest_cache/
54+
55+
# Translations
56+
*.mo
57+
*.pot
58+
59+
# Django stuff:
60+
*.log
61+
local_settings.py
62+
db.sqlite3
63+
db.sqlite3-journal
64+
65+
# Flask stuff:
66+
instance/
67+
.webassets-cache
68+
69+
# Scrapy stuff:
70+
.scrapy
71+
72+
# Sphinx documentation
73+
docs/_build/
74+
75+
# PyBuilder
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
.python-version
87+
88+
# pipenv
89+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
91+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
92+
# install all needed dependencies.
93+
#Pipfile.lock
94+
95+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
96+
__pypackages__/
97+
98+
# Celery stuff
99+
celerybeat-schedule
100+
celerybeat.pid
101+
102+
# SageMath parsed files
103+
*.sage.py
104+
105+
# Environments
106+
.env
107+
.venv
108+
env/
109+
venv/
110+
ENV/
111+
env.bak/
112+
venv.bak/
113+
114+
# Spyder project settings
115+
.spyderproject
116+
.spyproject
117+
118+
# Rope project settings
119+
.ropeproject
120+
121+
# mkdocs documentation
122+
/site
123+
124+
# mypy
125+
.mypy_cache/
126+
.dmypy.json
127+
dmypy.json
128+
129+
# Pyre type checker
130+
.pyre/
131+
.streamlit/secrets.toml

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 Qiusheng Wu
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Procfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: sh setup.sh && streamlit run app.py

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# leafmap-streamlit
2+
3+
4+
See [Secrets Management](https://www.notion.so/Secrets-Management-730c82af2fc048d383d668c4049fb9bf) for adding environment variables to streamlit.
5+
6+
![](https://i.imgur.com/9ifDaJo.png)

app.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
"""Run 'streamlit run app.py' in the terminal to start the app.
2+
"""
3+
import streamlit as st
4+
5+
# st.set_page_config(layout="wide")
6+
7+
"# leafmap streamlit demo"
8+
st.markdown('Source code: <https://github.com/giswqs/leafmap-streamlit/blob/master/app.py>')
9+
10+
"## Create a heat map"
11+
with st.echo():
12+
import streamlit as st
13+
from streamlit_folium import folium_static
14+
import leafmap.foliumap as leafmap
15+
16+
# Create a heat map
17+
filepath = "https://raw.githubusercontent.com/giswqs/leafmap/master/examples/data/us_cities.csv"
18+
19+
m = leafmap.Map(tiles='stamentoner')
20+
m.add_heatmap(filepath, latitude="latitude", longitude='longitude', value="pop_max", name="Heat map", radius=20)
21+
22+
folium_static(m)
23+
24+
25+
"## Load a GeoJSON file"
26+
with st.echo():
27+
28+
29+
m = leafmap.Map(center=[0, 0], zoom=2)
30+
in_geojson = 'https://raw.githubusercontent.com/giswqs/leafmap/master/examples/data/cable-geo.geojson'
31+
m.add_geojson(in_geojson, layer_name="Cable lines")
32+
folium_static(m)
33+
34+
35+
"## Add a colorbar"
36+
with st.echo():
37+
38+
m = leafmap.Map()
39+
m.add_basemap('USGS 3DEP Elevation')
40+
colors = ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']
41+
vmin = 0
42+
vmax = 4000
43+
m.add_colorbar(colors=colors, vmin=vmin, vmax=vmax)
44+
folium_static(m)
45+
46+
47+
"## Change basemaps"
48+
with st.echo():
49+
m = leafmap.Map()
50+
m.add_basemap("Esri.NatGeoWorldMap")
51+
folium_static(m)

requirements.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
streamlit
2+
streamlit-folium
3+
git+git://github.com/giswqs/leafmap

setup.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
mkdir -p ~/.streamlit/
3+
echo "[general]
4+
email = \"[email protected]\"
5+
" > ~/.streamlit/credentials.toml
6+
echo "[server]
7+
headless = true
8+
port = $PORT
9+
enableCORS = false
10+
" > ~/.streamlit/config.toml

0 commit comments

Comments
 (0)