【问题标题】:Is it possible to draw paths in Folium?是否可以在 Folium 中绘制路径?
【发布时间】:2020-06-20 00:51:29
【问题描述】:

我阅读了许多与此相关的文档,但找不到我想要的东西。

我想绘制两点之间的步行路径。可能吗?如果没有,python中是否还有其他用于此目的的库?

【问题讨论】:

标签: python python-3.x maps data-science folium


【解决方案1】:

当然可以。使用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

为了在两点之间绘制步行路径,可以使用OSMnxnetworkx的组合:

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 文件:

【讨论】:

  • 是画人行道还是画线?
  • 这是一条路径,正如您在标题中所问的那样是否可以在 Folium 中绘制路径?您是否正在寻找明确的步行路径?
  • 是否可以在不使用 get_nearest_node 函数的情况下绘制路线?例如,如果我有两个准确的住宅地址。
【解决方案2】:

如果您使用的是 Openstreetmap 和 folium,那么您可以按照此操作。虽然这是用于驾驶带有方向和时间的汽车路线。 你可以点击这个链接https://pastebin.ubuntu.com/p/7TtnBxWPNr/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多