如何解决我想使用 folium 包在给定特定日期时间及其纬度和经度的情况下,按不同 id 的时间顺序显示跟踪
data[data["fixedAt"] <= date_]
idTracking fixedAt latitud longitud
3 12953 2021-02-23 15:54:24 -34.665799 -58.472854
4 12953 2021-02-23 18:14:46 -34.665792 -58.472878
5 12967 2021-02-23 18:02:02 -34.604630 -58.530462
6 12953 2021-02-24 08:06:34 -34.665807 -58.472890
7 12953 2021-02-24 09:18:15 -34.665762 -58.472910
... ... ... ... ...
208 12953 2021-02-24 14:00:14 -34.665781 -58.472893
209 12953 2021-02-24 14:44:56 -34.665760 -58.473002
210 12969 2021-02-24 14:35:52 -34.729679 -58.470623
211 12953 2021-02-24 15:24:56 -34.665822 -58.472893
212 12967 2021-02-24 15:23:15 -34.604569 -58.530470
from folium.features import DivIcon
map_osm = folium.Map(location=[-34.665792,-58.472878],zoom_start=4)
for _,row in data.iterrows():
folium.CircleMarker(location=[row["latitud"],row["longitud"]],radius=3).add_to(map_osm)
folium.Marker(location=[row["latitud"],icon=DivIcon(icon_size=(150,36),icon_anchor=(0,0),html='<div style="font-size: 8pt">{}</div>'.format(row['idTracking']))).add_to(map_osm)
map_osm
我还想根据它的 idTracking 给它上色,例如一个方向图,我可以在其中查看每批货物的地图中的历史记录。
我尝试使用folium,但我只能得到每个纬度和经度的不同点。
谢谢!任何可以帮助我的人
解决方法
我喜欢使用 folium 的 AntPath() 来处理这种类型的事情
从一些数据开始
idTracking fixedAt latitud longitud
0 12953 2021-02-23 15:54:24 -34.665799 -58.472854
1 12953 2021-02-23 18:14:46 -34.665792 -58.472878
2 12953 2021-02-24 08:06:34 -34.765807 -58.472890
3 12953 2021-02-24 09:18:15 -34.665762 -58.492910
4 12953 2021-02-24 14:00:14 -34.665781 -58.472893
5 12953 2021-02-24 14:44:56 -34.665760 -58.493002
6 12953 2021-02-24 15:24:56 -34.565822 -58.472893
7 12967 2021-02-23 18:02:02 -34.604630 -58.530462
8 12967 2021-02-24 15:23:15 -34.604569 -58.530470
9 12967 2021-02-25 16:23:15 -34.704569 -58.540470
10 12967 2021-02-26 17:23:15 -34.804569 -58.630470
我使用 Pandas 的 groupby 一次处理一条“路线”,然后简单地以点列表的形式将路线传递给 AntPath()
import folium
from folium.plugins import AntPath
import pandas as pd
cd = {12953 : 'blue',12967: 'red'}
map_osm = folium.Map(location=[-34.665792,-58.472878],zoom_start=10)
for idt,grp in df.sort_values(['idTracking','fixedAt']).groupby('idTracking'):
route = grp[['latitud','longitud']].values.tolist()
AntPath(route,tooltip=idt,color=cd[idt]).add_to(map_osm)
map_osm
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。