在两个 gps 坐标之间有一条路线
having a route between two gps coordinates
晚上好,
我每次旅行都有gps坐标,我试图在每次旅行的每个点之间画一条线..
我正在使用此代码,但仍然不起作用,如果我删除 groupby(id)
它会起作用,但我也在来自不同 tripId 的点之间得到一条线 ..
tooltip = "Click me!"
for i in range(11):
folium.Marker(df.groupby('id')
[df['latitude'][i],df['longitude'][i]], popup=df['id'][i], tooltip=tooltip ).add_to(map)
route = folium.PolyLine(df.groupby('id')
[[df['latitude'][i],df['longitude'][i]],[df['latitude'][i+1],df['longitude'][i+1]]],
tooltip = "trip" ).add_to(map)
我的数据框看起来像这样:
longitude latitude id
0 5.184529 52.032471 66168
1 5.184513 52.032047 66168
2 5.184468 52.031559 66168
7 5.183908 52.027328 66168
8 5.175724 52.084732 89751
9 5.175513 52.084743 89751
10 5.174866 52.084713 89751
我建议将折线和标记分开添加到地图中。标记可以单独添加,折线作为地理位置列表。由于后者需要按 id
聚类,因此在 groupby 之后按组添加它们是有意义的:
import pandas as pd
import folium
import io
data = ''' longitude latitude id
0 5.184529 52.032471 66168
1 5.184513 52.032047 66168
2 5.184468 52.031559 66168
7 5.183908 52.027328 66168
8 5.175724 52.084732 89751
9 5.175513 52.084743 89751
10 5.174866 52.084713 89751'''
df = pd.read_csv(io.StringIO(data), sep='\s\s+')
tooltip = "Click me!"
m = folium.Map(location=[52.031559, 5.184468],
zoom_start=15)
for index, row in df.iterrows():
folium.Marker([row['latitude'], row['longitude']],
popup=row['id'],
tooltip=tooltip
).add_to(m)
for index, row in df.groupby('id',as_index=False)[['latitude','longitude']].agg(list).iterrows():
loc = list(zip(row.latitude, row.longitude))
folium.PolyLine(loc, tooltip = "trip").add_to(m)
晚上好,
我每次旅行都有gps坐标,我试图在每次旅行的每个点之间画一条线..
我正在使用此代码,但仍然不起作用,如果我删除 groupby(id)
它会起作用,但我也在来自不同 tripId 的点之间得到一条线 ..
tooltip = "Click me!"
for i in range(11):
folium.Marker(df.groupby('id')
[df['latitude'][i],df['longitude'][i]], popup=df['id'][i], tooltip=tooltip ).add_to(map)
route = folium.PolyLine(df.groupby('id')
[[df['latitude'][i],df['longitude'][i]],[df['latitude'][i+1],df['longitude'][i+1]]],
tooltip = "trip" ).add_to(map)
我的数据框看起来像这样:
longitude latitude id
0 5.184529 52.032471 66168
1 5.184513 52.032047 66168
2 5.184468 52.031559 66168
7 5.183908 52.027328 66168
8 5.175724 52.084732 89751
9 5.175513 52.084743 89751
10 5.174866 52.084713 89751
我建议将折线和标记分开添加到地图中。标记可以单独添加,折线作为地理位置列表。由于后者需要按 id
聚类,因此在 groupby 之后按组添加它们是有意义的:
import pandas as pd
import folium
import io
data = ''' longitude latitude id
0 5.184529 52.032471 66168
1 5.184513 52.032047 66168
2 5.184468 52.031559 66168
7 5.183908 52.027328 66168
8 5.175724 52.084732 89751
9 5.175513 52.084743 89751
10 5.174866 52.084713 89751'''
df = pd.read_csv(io.StringIO(data), sep='\s\s+')
tooltip = "Click me!"
m = folium.Map(location=[52.031559, 5.184468],
zoom_start=15)
for index, row in df.iterrows():
folium.Marker([row['latitude'], row['longitude']],
popup=row['id'],
tooltip=tooltip
).add_to(m)
for index, row in df.groupby('id',as_index=False)[['latitude','longitude']].agg(list).iterrows():
loc = list(zip(row.latitude, row.longitude))
folium.PolyLine(loc, tooltip = "trip").add_to(m)