gpt4 book ai didi

python - Folium PolyLine 未显示在 map 上 - 在 Jupyter 笔记本中使用 python 3.6 (anaconda) 的 folium 0.7.0

转载 作者:行者123 更新时间:2023-12-05 07:25:55 24 4
gpt4 key购买 nike

我有一张使用以下代码生成的纽约市街区 map :

m = folium.Map(location=[40.7035, -73.990], 
zoom_start=16.5,
tiles='cartodbpositron')

然后我尝试使用 folium.PolyLine() 在 map 上添加连接点的线,但即使我在调用 m._children 时看到它们已列出,它们不要显示在 map 上。

下面是创建线条的代码,其中 G 是一个 networkx 图:

for x, y in G.edges():
points = [nx.get_node_attributes(G, 'loc')[x], nx.get_node_attributes(G, 'loc')[y]]
egde = folium.PolyLine(locations=points, weight=5, color='red')
edge.add_to(m)

示例:

[(-73.986635, 40.703988), (-73.988683, 40.702674)]

m.children 的输出(前几行):

OrderedDict([('cartodbpositron',
<folium.raster_layers.TileLayer at 0x12279feb8>),
('poly_line_ae5785771a2148c5a8559cb0085b10a4',
<folium.vector_layers.PolyLine at 0x122892128>),
('poly_line_ee73b495559940d484064e8c8492eda5',
<folium.vector_layers.PolyLine at 0x1229734a8>),
('poly_line_415a7ed70a2a425e876c8a6711408a6a', ...

知道我可能做错了什么吗?

最佳答案

这有点奇怪,folium polyline 需要 [latitude, longitude] 格式的坐标,而通常接受的格式是 [longitude, latitude]

举个例子:我假设您正在使用 OSRM 获取几何图形。

OSRM 几何以 [[longitude,latitude],...] 的形式返回坐标。

如果您直接将它们与 folium 一起使用,则不会显示折线。

使用以下函数反转几何坐标:

def reverse_lon_lat(x):
a = [[p[1], p[0]] for p in x]
return a

然后画出你想要的多段线。

关于python - Folium PolyLine 未显示在 map 上 - 在 Jupyter 笔记本中使用 python 3.6 (anaconda) 的 folium 0.7.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54642392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com