在地图上绘制经度和​​纬度并为每个子集DataFarame 中的每一行创建线

如何解决在地图上绘制经度和​​纬度并为每个子集DataFarame 中的每一行创建线

我在我的数据集上做了很多工作,使它像下面这样。 我知道如何绘制大叶中的每个纬度和经度,如下所示。我不知道如何 每行中我的数据集的每对纬度和经度之间的绘图线(多边形)。正如我们看到的,每一行都是纬度和经度的组合。

代码用于显示地图上的每个点(纬度和经度)。

注意: 我没有为提供的 DataFrame 编写此代码。它用于具有名为“start_station_latitude”的列和其他列 start_station_longitude 的数据框。

 
import matplotlib.pyplot as plt

#installation
# Create a world map to show distributions of users 
import folium
from folium.plugins import MarkerCluster
#empty map
world_map= folium.Map(tiles="CartoDB dark_matter")
marker_cluster = MarkerCluster().add_to(world_map)
#for each coordinate,create circlemarker of user percent
for i in range(len(trip_counts_10)):
        lat = trip_counts_10.iloc[i]['start_station_latitude']
        long = trip_counts_10.iloc[i]['start_station_longitude']
           
        
        radius=5
        popup_text = """Users : {}<br>"""
        popup_text = popup_text.format(trip_counts_10.iloc[i]['start_station_name'])


        folium.CircleMarker(location = [lat,long],radius=radius,popup= popup_text,fill =True).add_to(marker_cluster)

plt.savefig('x',dpi=300)
#show the map
world_map
#tiles="CartoDB dark_matter"
#cartodbpositron

        lan0     lan1       lan2           long0      long1      long2
    59.915667   59.913796   59.922539   10.777567   10.735802   10.704541
    59.929853   59.919463   59.910356   10.711515   10.743829   10.705106
    ....

我也写了下面的代码获取每一行的列表,但我不知道接下来该怎么做。

import geopandas as gpd
from shapely.geometry import polygon

Row_list = []
for index,rows in indices_df.iterrows():
    my_list =[rows.lan0,rows.lan1,rows.lan2,rows.long0,rows.long1,rows.long2]
    Row_list.append(my_list)
print(Row_list)
    #polygon_geom = polygon(zip(lon_point_list,lat_point_list))
    

解决方法

我不确定我是否完全理解您的问题。我的理解是,你有一个 df,每一行都有三个纬度和三个经度,你想通过这三个点画一条线。如果这就是你的意思,你可以试试这个:

folium.PolyLine(points).add_to(world_map)

这里的 points 是一个包含纬度和经度的元组列表。你可以像这样制作这个列表:

mid_i = int(len(my_list)/2)
points = [(my_list[i],my_list(mid_i + i]) for i in range(mid_i)]

如果您希望该线闭合,只需将第一个点添加到此列表的末尾即可。

points.append(points[0])

有关详细信息,请参阅 this page

此外,我认为您做出了一些有问题的设计选择。讨论这些并不是这个答案的真正重点,但我建议您永远不要使用名称 lan 表示纬度,这是没有意义的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?