Я пытаюсь показать на карте сеть с множеством точек, соединенных друг с другом через PolyLines. Я использовал MarkerCluster для построения точек, но, конечно, PolyLines не ведут себя соответствующим образом, поэтому, если точки уменьшаются, если я уменьшаю масштаб, линии продолжают переходить от невидимого маркера к другому.
Насколько я понял, читая документацию, нет способа сделать это встроенным в Folium, но есть ли обходной путь, который я мог бы попробовать?
РЕДАКТИРОВАТЬ: Добавил код по запросу, может не добавляйте данные, но это набор ребер и узлов с геокоординатами и некоторыми функциями.
def new_map(value):
fil = []
mc = MarkerCluster()
for p in value:
fil.append(services[ids1.index(int(p))])
m = folium.Map(start_loc)
map_ls = []
if len(fil) > 0:
for x in edges_fol:
for y in fil:
if y in x['data']['serviceName']:
tooltip = 'Services on this edge:<br> {}'.format(['{}<br>'.format(t) for t in x['data']['serviceName_aggregate']]).replace('"', '').replace('[', '').replace(',', '').replace(']', '').replace("'", '')
line = folium.PolyLine(locations = [x['data']['source_geo_site_coordinates'], x['data']['target_geo_site_coordinates']], popup = tooltip, weight = len(x['data']['serviceName_aggregate']), smooth_factor = 500)
if line not in list_of_polylines:
if x['data']['source'] not in map_ls:
map_ls.append(x['data']['source'])
mc.add_child(folium.Marker(location = x['data']['source_geo_site_coordinates'], popup=x['data']['source'])).add_to(m)
if x['data']['target'] not in map_ls:
map_ls.append(x['data']['target'])
mc.add_child(folium.Marker(location = x['data']['target_geo_site_coordinates'], popup=x['data']['target'])).add_to(m)
list_of_polylines.append((line, y))
else:
for x in nodes_fol:
mc.add_child(folium.Marker(location = x['data']['geo_site_coordinates'], popup=x['data']['siteName'])).add_to(m)
tbd = []
for line in list_of_polylines:
if line[1] not in fil:
tbd.append(line)
else:
line[0].add_to(mc)
m.save('test1.html')
for t in tbd:
list_of_polylines.remove(t)
return open('test1.html', 'r').read()```