Отображение азимута на картах Python Folium
Столкнулся с такой ситуацией: необходимо отображать азимут отметки на карте. Порывшись в интернете, наткнулся на интересную статью и код:
import folium
import math
m = folium.Map(location=[37.0431575, -7.8449655], zoom_start=14)
tootip = "Célula em Olhão"
origin_point = [37.040893, -7.83197]
folium.CircleMarker(
location=origin_point,
radius=4,
popup="célula",
).add_to(m)
length = .01
angle = 45
end_lat = origin_point[0] + length * math.sin(math.radians(angle))
end_lon = origin_point[1] + length * math.cos(math.radians(angle))
folium.PolyLine([origin_point, [end_lat, end_lon]]).add_to(m)
m
Код полностью рабочий. Все круто. Однако, столкнулся с такой проблемой: я считываю данные с текстового документа, соответственно точек у меня не мало. Казалось бы: помести в цикл и все заработает.... Но вот с этим и проблема: при помещении записи в цикл при наличии нескольких точек - программа не срабатывает и выдает ошибку.
Фрагмент моего кода:
for lt, ln, az in zip(lat, lon, azimut):
...
...
length = .01
end_lat = float(lt) + length * math.sin(math.radians(int(az)))
end_lon = float(ln) + length * math.sin(math.radians(int(az)))
folium.PolyLine([[lt, ln], [end_lat, end_lon]], color = 'green').add_to(map)
...
...
Вопрос Уважаемые знатоки: где я допустил ошибку и сделал не так?
Заранее огромное спасибо!
Ответы (1 шт):
Нашёл ошибку.
Нужно было просто привести все данные к одному типу данных: float. И уже в folium.PolyLine(....).add_to(map) использовать один тип данных.
