python - 是否可以在 Folium 中绘制路径?
问题描述
我阅读了许多与此相关的文档,但找不到我正在寻找的东西。
我想绘制两点之间的步行路径。可能吗?如果没有,python中是否还有其他用于此目的的库?
解决方案
当然可以。使用PolyLine
:
import folium
m = folium.Map(location=[40.720, -73.993],
zoom_start=15)
loc = [(40.720, -73.993),
(40.721, -73.996)]
folium.PolyLine(loc,
color='red',
weight=15,
opacity=0.8).add_to(m)
m
你得到:
编辑 1
为了在两点之间绘制一条步行路径OSMnx
,您可以使用和的组合networkx
:
import osmnx as ox
import networkx as nx
ox.config(log_console=True,
use_cache=True)
G_walk = ox.graph_from_place('Manhattan Island, New York City, New York, USA',
network_type='walk')
orig_node = ox.get_nearest_node(G_walk,
(40.748441, -73.985664))
dest_node = ox.get_nearest_node(G_walk,
(40.748441, -73.4))
route = nx.shortest_path(G_walk, orig_node, dest_node, weight='length')
fig, ax = ox.plot_graph_route(G_walk,
route,
node_size=0,
save=True,
file_format='svg',
filename='test')
你得到:
编辑 2
对于叶型地图,您可以使用plot_route_folium
:
import osmnx as ox
import networkx as nx
ox.config(log_console=True, use_cache=True)
G_walk = ox.graph_from_place('Manhattan Island, New York City, New York, USA',
network_type='walk')
orig_node = ox.get_nearest_node(G_walk,
(40.748441, -73.985664))
dest_node = ox.get_nearest_node(G_walk,
(40.748441, -73.4))
route = nx.shortest_path(G_walk,
orig_node,
dest_node,
weight='length')
route_map = ox.plot_route_folium(G_walk, route)
route_map.save('route.html')
你会得到一个有用的 html 文件:
推荐阅读
- sql - Google 大查询 - Firebase 分析 - 屏幕视图的封闭漏斗(参数)
- java - 我们可以在 JDBCIO.write 函数中使用 Apache Beam 管道在单个 CloudSQL 连接中执行多个插入查询吗?
- javascript - React.js / CRA,如何从另一个文件调用或导入 javaScript 函数?
- ios - Swift:为掷骰子游戏实现游戏循环的更好方法是什么(不使用等待延迟)
- git - 如何将特定文件添加到 .gitignore (Unity)
- email - 电子邮件:通用引用文本分隔符
- css - 在 IE11 中,flexbox div 不尊重容器,文本在一行中溢出,而不是换行
- hyperledger-composer - 作曲家网络部署,找不到命令
- angular - 如何仅为子模块注册 Angular HttpInterceptor
- machine-learning - SEGAN模型中用于语音增强的AEGenerator和Generator的区别