Maksim Nadezhdin commited on
Commit
0ad49be
·
1 Parent(s): ede71a9

FEAT: Added map methods and map for streamlit

Browse files

Former-commit-id: a1537daa2b93e393a0aa0b02f94ae8c940865a33
Former-commit-id: 9852ea775f9a54ec3e5cdb68058710245268da9d

Files changed (2) hide show
  1. .gitignore +2 -1
  2. 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)