Spaces:
Sleeping
Sleeping
Maksim Nadezhdin
commited on
Commit
·
0ad49be
1
Parent(s):
ede71a9
FEAT: Added map methods and map for streamlit
Browse filesFormer-commit-id: a1537daa2b93e393a0aa0b02f94ae8c940865a33
Former-commit-id: 9852ea775f9a54ec3e5cdb68058710245268da9d
- .gitignore +2 -1
- map.py +52 -0
.gitignore
CHANGED
@@ -1 +1,2 @@
|
|
1 |
-
__pycache__
|
|
|
|
1 |
+
__pycache__
|
2 |
+
.idea
|
map.py
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import plotly.graph_objects as go
|
4 |
+
|
5 |
+
# Загрузка данных
|
6 |
+
data = pd.DataFrame({
|
7 |
+
'latitude': [37.7749, 34.0522], # Пример координат для точек
|
8 |
+
'longitude': [-122.4194, -118.2437],
|
9 |
+
'name': ['San Francisco', 'Los Angeles']
|
10 |
+
})
|
11 |
+
|
12 |
+
# Заголовок приложения
|
13 |
+
st.title('Приложение с картой MapBox')
|
14 |
+
|
15 |
+
# Создание маркеров
|
16 |
+
marker_size = 12 # Размер маркера
|
17 |
+
|
18 |
+
fig = go.Figure()
|
19 |
+
|
20 |
+
for i, row in data.iterrows():
|
21 |
+
fig.add_trace(go.Scattermapbox(
|
22 |
+
lat=[row['latitude']],
|
23 |
+
lon=[row['longitude']],
|
24 |
+
mode='markers',
|
25 |
+
marker=dict(
|
26 |
+
size=marker_size,
|
27 |
+
color='red',
|
28 |
+
sizemode='diameter', # Размер маркера в диаметрах
|
29 |
+
),
|
30 |
+
text=row['name']
|
31 |
+
))
|
32 |
+
|
33 |
+
# Вычисление границы области, содержащей все маркеры
|
34 |
+
min_lat, max_lat = data['latitude'].min(), data['latitude'].max()
|
35 |
+
min_lon, max_lon = data['longitude'].min(), data['longitude'].max()
|
36 |
+
|
37 |
+
# Рассчитываем центр и масштаб для отображения всех маркеров
|
38 |
+
center_lat = (min_lat + max_lat) / 2
|
39 |
+
center_lon = (min_lon + max_lon) / 2
|
40 |
+
zoom_level = 1 # Масштаб (может потребоваться настройка)
|
41 |
+
|
42 |
+
# Настройка карты
|
43 |
+
fig.update_layout(
|
44 |
+
mapbox_style="open-street-map",
|
45 |
+
mapbox=dict(
|
46 |
+
center=dict(lat=center_lat, lon=center_lon),
|
47 |
+
zoom=zoom_level,
|
48 |
+
),
|
49 |
+
)
|
50 |
+
|
51 |
+
# Отображение карты в Streamlit
|
52 |
+
st.plotly_chart(fig)
|