Настройка углов входа Folium (Python)
В файле poi_base.csv находятся названия точек, долгота, широта, радиус и секторы входа (в градусах), которые нужно отобразить на карте графически.
import folium
from folium import plugins
import pandas as pd
poi = pd.read_csv('poi_base.csv')
poi.head(6)
my_map = folium.Map(
location = [53.481521531976696, -104.79119341622707],
zoom_start=10
)
for _, city in poi.iterrows():
folium.Marker(
location = [city['latitude'], city['longitude']]
).add_to(my_map)
for _, city in poi.iterrows():
plugins.SemiCircle(
location = [city['latitude'], city['longitude']],
radius = [city['radius']],
start_angle = [city['from']],
stop_angle = [city['until']],
fill_color='blue'
).add_to(my_map)
my_map
Пример неправильной прорисовки:
folium.Marker(
location = [53.481521531976696, -104.79119341622707],
popup = 'test'
).add_to(my_map)
plugins.SemiCircle(
location = (53.481521531976696, -104.79119341622707),
radius = 60,
start_angle = 350,
stop_angle = 90,
fill_color = 'blue'
).add_to(my_map)
my_map
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Вы неверно задаете углы. для выпуклого сектора у вас начальный угол должен быть меньше конечного, при этом ноль градусов отсчитывается от вертикали по часовой стрелке:
plugins.SemiCircle(
location = (53.481521531976696, -104.79119341622707),
radius = 60,
start_angle = -10,
stop_angle = 90,
fill_color = 'red'
).add_to(my_map)
В общем случае, решение можно свести к такому коду:
if start_angle > stop_angle:
start_angle-=360
print(start_angle, stop_angle)
plugins.SemiCircle(
location = (53.481521531976696, -104.79119341622707),
radius = 60,
start_angle = start_angle,
stop_angle = stop_angle,
fill_color = 'red'
).add_to(my_map)


